Socket 网络编程基础
Socket 不仅用于聊天应用程序,也是学习 .NET 网络编程的重要基础。本文演示如何实现服务端和客户端互发信息,以及服务端向多个客户端发送信息。
服务端代码 1:基础监听
public Form1()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
}
// 创建监听用的 socket
private void btnStartMonitor_Click(object sender, EventArgs e)
{
// 监听的 IP 地址
IPAddress ip = IPAddress.Parse(txtIP.Text);
// 监听的 IP 地址和端口号
IPEndPoint point = new IPEndPoint(ip, int.Parse(txtPortNumber.Text));
// 监听用的 socket
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 绑定监听的 IP 地址和端口号
socket.Bind(point);
// 监听端口,监听队列的长度
socket.Listen(10);
// 点击之后,禁用掉按钮
btnStartMonitor.Enabled = false;
// 提示用户程序开始运行了
ShowMsg("开始运行了...");
// 监听端口,如果有客户端连接,创建通信用 socket
// 用线程来解决窗体假死的问题
Thread th = new Thread(Listen);
th.IsBackground = true; // 后台线程
th.Start(socket);
}
// 监听是否有客户端连接
void Listen(object o)
{
// 监听用的 socket
Socket socket = o as Socket;
// 监听端口
Socket connSocket = socket.Accept();
ShowMsg(connSocket.RemoteEndPoint.ToString());
}
{
txtShowMessage.AppendText(msg + );
}

