TCP服务端(可安装)
链接:https://pan.baidu.com/s/1SjKVeicRu1LeW8sRZMNhTw
提取码:1234
复制这段内容后打开百度网盘手机App,操作更方便哦
/*Socket 编程API
*
*
*服务器端程序的编写步骤:
第一步:调用socket()函数创建一个用于通信的套接字;
第二步:给已经创建的套接字绑定一个端口号,这一般通过设置网络套接口地址和调用bind()函数来实现。
第三步:调用listen()函数使套接字成为一个监听套接字。
第四步:调用accept()函数来接受客户端的连接,这就是可以和客户端通信了。
第五步:处理客户端的连接请求。
第六步:终止连接。
如果服务器有4个客户端连接,那么服务器端有多少个Socket存在? 1个监听+4个客户端个数=1+4个
每个客户端有多少个Socket存在? 1
*/
//第一步:调用Socket()函数创建一个用于通信的套接字。
public Socket listenSocket;
//字典集合:存储IP和Socket的集合
private Dictionary<string, Socket> OnLineList = new Dictionary<string, Socket>();
//当前时间,类似于宏定义
private string CurrentTime
{
get { return DateTime.Now.ToString("HH:mm:ss") + Environment.NewLine; }
}
//编码格式
Encoding encoding = Encoding.Default;
public static string GetLocalIP()
{
try
{
string HostName = Dns.GetHostName(); //得到主机名
IPHostEntry IpEntry = Dns.GetHostEntry(HostName);
for (int i = 0; i < IpEntry.AddressList.Length; i++)
{
//从IP地址列表中筛选出IPv4类型的IP地址
//AddressFamily.InterNetwork表示此IP为IPv4,
//AddressFamily.InterNetworkV6表示此地址为IPv6类型
if (IpEntry.AddressList[i].AddressFamily == AddressFamily.InterNetwork)
{
return IpEntry.AddressList[i].ToString();
}
}
return "";
}
catch (Exception ex)
{
MessageBox.Show("获取本机IP出错:" + ex.Message);
return "";
}
}