TCP网络通信编程,多线程(代码见附录)

实验目的:

实现PC与物联网试验箱间传输文件,PC作为客户端,在PC上输入一个文件名,通过编制的程序上传到物

联网试验箱上。传输协议采用TCP协议。在PC的linux系统上运行client,在物联网试验箱的linux系统上运

行server。

实验步骤:

(1)在PC端打开虚拟机(unbuntu系统),将实验板接上电源并使用网线将开发板与PC相连。

(2)使用命令ifconfig eth0 192.168.1.21设置PC端IP地址,

并在实验板上的设置中设置开发板端IP为192.168.1.20.

(3)在PC端使用命令telnet 192.168.1.20连接至开发板

(4)开启新的终端窗口,将编写好的pthreadserver.c通过pc命令复制到develop目录中,并使用

命令arm-linux-gcc –o pthreadserver pthreadserver.c –lpthread对服务器端程序进行交叉编译.

(5)接着在开发板中使用命令:mount –o nolock –t nfs192.168.1.21:/home/unsp/develop/ /mnt,

挂载PC端的develop目录至开发板的mnt目录下。

(6)在开发板的home目录下使用命令:mkdirserver,新建一个服务器端目录,接着进入/mnt目录下使用

命令:pc pthreadserver /home/server,将服务器端程序复制到新建的目录中。

(7)在开发板的/home/server目录下使用命令:./pthreadserver,打开服务器端程序。

(8)在PC端使用命令:./client192.168.1.20, 打开客户端程序,并根据提示信息(Please Input File

Name OnClient)输入客户端所在目录下存在的文件名。(可以打开多个客户端同时传输文件)

(9)传输文件成功,客户端程序显示发送成功信息并退出,服务器端程序显示接收数据成功信息并继续监听

(10)使用命令ctrl + c结束服务器端程序,并使用命令:ls –l,

可以查看从客户端传输至服务器端的文件信息。

注:可在PC端进行测试(IP:127.0.0.1)

实验结果:

(1)telnet, 挂载:

6e28c64cdb1e5eff4771eee2a56ca6af.png

(2)交叉编译:

352760dce200503920087af87a6f161d.png

(3)多线程文件传输演示:

a495479c57cafdc7e8b759878e67ee19.png

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐