计算机网络实验设计-利用Socket实现双机通信

实验目的:

利用 Socket 来实现双机通信,理解 TCP 状态机图
实验内容:使用 Socket 编程,采用其中的 TCP 面向连接方式,实现计算机数
据的交换。

具体要求:

1、操作系统:可在 Linux 或 Windows 操作系统下实现
2、编程语言:C 或 C++,若使用 Java、python 等更高级的语言或脚本语言
则须实现下面的“扩展功能”
3、界面要求:图形界面或命令行界面均可
4、连接方式:局域网内通信,有线或无线网络均可
5、实现功能:
*基本功能(必做):计算机 A、B(须为不同的物理机)实现文本通信,
即 B 收到 A 所发送的文本并显示。
扩展功能(加分选做):双向通信(同一程序下,A、B 既可发送数据又可
接受数据);文件传输(B 完整收到 A 发送的文件并保存);实时音视频传
输(类似于 QQ 电话);其它网络扩展功能。
6、 验收方式:功能演示,讲述实现的功能并将源代码现场编译运行

我的实现程度

语言:C
在局域网内实现了双机的双向通信(异步刷新聊天框)。由于器材限制,只能在虚拟机里进行模拟。
对于主机里的服务端只需要开端口,IP默认0.0.0.0,客户端IP初始为127.0.0.1,可以根据情况自己写IP,然后再输入端口。
模拟实验效果图
计算机网络实验设计-利用Socket实现双机通信

思路

利用MFC,Socket,建立线程来实现异步通信
页面主要控件:
连接/开启按钮 BUTTON1//如果成功连接就会隐藏起来,然后显示按钮2
断开/关闭按钮 BUTTON2;//点击后会隐藏起来,显示按钮1
全局消息框 EDIT1,//只可读
发送消息框 EDIT2,
发送按钮 BUTTON3//点击发送消息
主要事件响应和函数
OnclickBUTTON1();
OnclickBUTTON2();
OnclickBUTTON3();
GetNowTime();//返回系统时间
Update();//更新全局消息框里的内容

  • 服务端:
    线程函数ServerFun();
  • 客户端:
    线程函数Recv();

代码

暂时略,期末过后更新