delphi 怎么写获取外网ip

delphi 怎么写获取外网ip,第1张

最简单的用 ID>

先来了解下Android如何获取wifi的信息:

WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE);

WifiInfo wifiInfo = wifi_servicegetConnectionInfo();

其中WifiManager是管理wifi的最重要的类,详细请参考

>

先介绍两个nginx模块

a、proxy_module

b、>

socket传文件

private string path = "F:\\SmartMovieEXE"; //要发送的文件

private Socket s;

private void listen()

{

string ip = "127001"; //远程IP 这里定义为自己的机器

IPAddress[] ih = DnsGetHostAddresses(ip); //获得IP列表

IPAddress newip = ih[0]; //获取IP地址

int port = 6789; //定义端口

IPEndPoint Conncet = new IPEndPoint(newip, port); //构造结点

s = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp); //初始化socket

try

{

sConnect(Conncet); //连接远程服务器

if (sConnected) //如果连接成功 sConnected 则为true 否则为 false

{

ConsoleWriteLine("连接成功");

Thread t = new Thread(new ThreadStart(set)); //创建进程

tStart(); //开始进程

ConsoleWriteLine("发送完毕")

}

}

catch(NullReferenceException e)

{

ConsoleWriteLine("{0}",e);

}

private void set() //创建set函数

{

ConsoleWriteLine("开始发送数据");

byte[] b = new byte[10000000]; //创建文件缓冲区,这里可以认为文件的最大值

FileStream file = FileOpen(path, FileModeOpen,FileAccessRead); //创建文件流

int start = 0;

int end = (int)fileLength; //获取文件长度文件传送如果有需要超过int的范围估计就要改写FileStream类了

try

{

while (end != 0)

{

int count = fileRead(b, start, end); //把数据写进流

start += count;

end -= count;

}

while (start != 0)

{

int n = sSend(b, end, start, SocketFlagsNone); //用Socket的Send方法发送流

end += n;

start -= n;

}

fileClose(); //关闭文件流

sClose(); //关闭Socket

}

catch (NullReferenceException e)

{

ConsoleWriteLine("{0}", e);

}

}

这样文件发送的模型就实现了

接下去实现文件的接收,首先要确定对方发送文件的长度,其实上面的那段还要加入发送文件长度的功能,实现很简单,就是发送int变量end ,然后要求接收代码返回一个Boolean确定是否发送,这里为了更简明的说清楚原理并没有实现

private void get()

{

string path = "G:\\daexe"; //接收的文件

FileStream file = new FileStream(path, FileModeOpenOrCreate, FileAccessWrite); //写入文件流

TcpListener listen = new TcpListener(6789); //监听端口

Socket s1 = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp); //定义Socket并初始化

try

{

listenStart(); //开始监听

s1 = listenAcceptSocket(); //获取Socket连接

byte[] data = new byte[10000000]; //定义缓冲区

int longer = dataLength;

int start = 0;

int mid = 0;

if (s1Connected) //确定连接

{

ConsoleWriteLine("连接成功");

int count = s1Receive(data, start, longer, SocketFlagsNone); //把接收到的byte存入缓冲区

mid += count;

longer -= mid;

while (count != 0)

{

count = s1Receive(data, mid, longer, SocketFlagsNone);

mid += count;

longer -= mid;

}

fileWrite(data, 0, 1214134); //写入文件,1214134为文件大小,可以用socket发送获得,代码前面已经说明。

s1Close();

fileClose();

}

}

catch(NullReferenceException e)

{

ConsoleWriteLine("{0}",e);

}

}

以上就是关于delphi 怎么写获取外网ip全部的内容,包括:delphi 怎么写获取外网ip、【Freeswitch】【媒体NAT穿越案例一】通过stun服务获取FS的公网IP、Android:通过WifiManager监听Wifi信号强弱等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9569662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存