UDPClint和UDPServer的运行结果

网络 网络管理
文章摘要:文章中,我们对UDPClient和UDPServer的运行进行了分析。那么具体内容请大家参考下面的文章来了解一下吧。

对于UDP的一个应用,我们已经说过了它的UDPClientUDPServer的具体建立过程了。接下来,这里我们来运行一下我们的例子吧。看看具体的运行结果。

运行例子程序

1、编译例子程序

使用如下命令来编译例子程序:

  1. gcc -Wall -o udpserv udpserv.c  
  2. gcc -Wall -o udpclient udpclient.c 

编译完成生成了udpserv和udpclient两个可执行程序。

2、运行UDPServer程序

执行。/udpserv &命令来启动服务程序。我们可以使用netstat -ln命令来观察服务程序绑定的IP地址和端口,部分输出信息如下:

  1. Active Internet connections (only servers)  
  2. Proto Recv-Q Send-Q Local Address Foreign Address State  
  3. tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN  
  4. tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN  
  5. tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN  
  6. tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN  
  7. udp 0 0 0.0.0.0:32768 0.0.0.0:*  
  8. udp 0 0 0.0.0.0:8888 0.0.0.0:*  
  9. udp 0 0 0.0.0.0:111 0.0.0.0:*  
  10. udp 0 0 0.0.0.0:882 0.0.0.0:* 

可以看到udp处有“0.0.0.0:8888”的内容,说明服务程序已经正常运行,可以接收主机上任何IP地址且端口为8888的数据。

如果这时再执行。/udpserv &命令,就会看到如下信息:

  1. bind error: Address already in use 

说明已经有一个服务程序在运行了。

运行UDP Client程序

执行。/udpclient 127.0.0.1命令来启动客户程序,使用127.0.0.1来连接服务程序,执行效果如下:

  1. Hello, World!  
  2. Hello, World!  
  3. this is a test  
  4. this is a test  
  5. ^d 

输入的数据都正确从服务程序返回了,按ctrl+d可以结束输入,退出程序。

如果服务程序没有启动,而执行客户程序,就会看到如下信息:

  1. $ ./udpclient 127.0.0.1  
  2. test  
  3. read error: Connection refused 

说明指定的IP地址和端口没有服务程序绑定,客户程序就退出了。这就是使用connect()的好处,注意,这里错误信息是在向服务程序发送数据后收到的,而不是在调用connect()时。如果使用tcpdump程序来抓包,会发现收到的是ICMP的错误信息。

责任编辑:佟健 来源: IT168
相关推荐

2010-03-15 17:29:15

Java线程池

2020-04-01 08:51:47

注释字符代码

2019-06-13 16:10:18

FirefoxChrome前端

2010-06-19 13:41:16

RIP路由协议

2010-06-11 17:12:28

EIGRP路由协议

2009-07-09 16:16:06

Servlets和JSJRun安装

2010-09-28 11:05:49

jQuery

2021-11-10 06:38:01

Float Double 数据库

2011-02-23 11:18:48

MongoDBMySQL性能测试

2019-08-07 11:02:28

Python 开发编程语言

2012-03-28 13:11:35

JavaEclipse

2011-03-18 19:13:28

WindowsMySQL数据库

2010-09-17 15:25:03

JAVAJVM

2020-11-19 14:28:02

MacBookiOS苹果

2012-03-01 14:13:36

Java

2020-08-11 08:59:20

容器虚拟化技术

2014-07-30 11:22:10

PostgreSQLFreeBSD

2024-01-15 08:09:44

Fluent错误代码

2022-10-29 17:34:18

JVMJava

2013-09-05 09:09:08

SDN云计算
点赞
收藏

51CTO技术栈公众号