开发一个简单的C网络通信程序。
1、 创建窗体项目,添加两个按钮,分别用于启动服务器和客户端功能。
2、 创建服务器窗体和客户端窗体两个界面,通过在Program.cs文件的main函数中调整Application.Run();所传入的窗体参数,即可选择启动对应的窗体界面,实现不同界面的切换与运行。
3、 设置本地IP与端口,配置消息接收界面布局。
4、 服务器接收到消息后会自动发送回复。
5、 开启监听后,创建套接字,设置地址族、类型和协议,绑定指定IP与端口,随后启动监听即可等待连接。
6、 开启监听后会创建一个监听线程,调用connfd = listenfd.Accept()时,Accept方法会使线程阻塞,每当有客户端连接时,便唤醒并执行一次,随即创建一个新的通信线程来处理该连接。
7、 每当通讯线程通过Receive()接收到数据时,便将其附加到serv echo:之后,并回传给对应客户端。
8、 通信成功一次。
9、 界面布局设计
10、 请输入服务器IP和端口,开启消息发送与接收显示功能。
11、 点击开启按钮后,配置好socket对象,随后执行client.Connect(ipEp)以尝试与服务器建立连接。
12、 连接服务器成功后,启动客户端接收线程,进入循环接收数据。由于client.Receive(arrRecvmsg)具有阻塞性,线程会暂停等待,仅当接收到数据时才继续执行后续操作。
13、 测试客户端是否正常,点击发送按钮。
14、 在测试服务器上进行如下测试。
15、 在Program.cs文件中启动主窗口,通过调用Application.Run(new Form1());来运行程序。
16、 点击主界面的服务器或客户端按钮,分别弹出对应功能窗口。
17、 运行效果所示,可在内网环境中正常使用。
