概述
最近在学习网络编程,本篇文章主要记录网络编程实验的一些过程,以此加深印象。该篇是关于UDP套接字的简单网络编程通信。
实验过程
1.从github克隆一个代码文件夹,里面有已经写好的UDP网络编程代码,下面放上链接。 https://github.com/patrikarlos/networkprogramming.
2.克隆成功后,启动终端。cd到克隆下来的文件夹下,执行命令
make listener
由于我已经实现编译过该文件,所以结果是up to date,对没编译过的情况结果应该如下图。
2.编译成功后,运行listener文件,在终端输入:
./listener
成功运行:
3.此时,UDP的服务器已悄然启动,并在代码预定义的端口保持监听,等待客户的呼叫。
4.此时我们再打开一个终端,在终端输入:
nc -u 127.0.0.1 4950
在勇敢敲击回车键后,输入你想要发送的消息,就会发现之前那个监听运行的终端上有你发送的消息,实验就成功啦。
客户端:
服务器端:
我这里使用的是127.0.0.1,代表了本机地址,在具体实验中,可以使用localhost代替,不知为何我使用localhost不能成功发送消息,可能是存在主机权限的问题。
该步说明:
这将创建一个UDP套接字(-u),将其与“localhost”和端口4950关联。由于它的udp,没有连接,所以此时不会交换消息(TCP将不同)。它可能不清楚,但光标在你按下Enter后创建的行上是“活动的”。如果你现在在那里输入一些东西(这是标准输入,标准输入,标准输入,标准输入/标准输入),然后按enter,这个‘字符串’将被封装到UDP包中并发送到服务器。如果你查看服务器(监听器)运行的终端,你应该会看到你刚刚发送的“字符串”以及一些额外的信息。发送者、发送者的IP和端口以及字节大小。
5.如要停止运行,按下键盘ctrl+C即可
6.另一种传消息方式:
echo -en "bob\n+Alice\n=True" | nc -w1 -u 127.0.0.1 4950
我们还需要配置netcat/nc,我们要做的是添加一个选项’-w1’,在它断开连接前等待1秒,然后断开连接。对于UDP来说,它的含义并不清楚,但效果是nc在发送消息后1秒终止。
客户端:
服务器端: