最简单的用 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信号强弱等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)