Linux下的UDP连接编程

本文介绍了Linux环境下UDP协议的编程实现。与TCP不同,UDP是无连接且不可靠的。服务器通过socket(), bind(), listen()初始化,使用accept()等待连接。客户端在socket()后调用connect()发送请求并阻塞。当服务端重启时,若客户端仍保持连接,端口号可能被占用,表现出TIME_WAIT特性。提供有udp_server.c和udp_client.c的示例代码。" 118846742,10325661,IBM MQ 大消息处理:Spring 整合与问题解决,"['java整合ibm.mq', 'Spring集成', 'IBM MQ']
摘要由CSDN通过智能技术生成

udp是无连接不可靠的IP协议,和tcp有所不同。
udp服务器调用socket(),bind(),listen()完成套接字初始化后,调用accept()阻塞等待处于监听端口的状态。
udp客户端调用socket()初始化后,调用connect()发送SYN字段并阻塞等待应答。
客户端如果一直与服务端连接,服务端退出后重启时,端口号已被占用,和tcp一直,具有TIME_WAIT特性。
代码如下:
udp_server.c

  1 #include<stdio.h>
  2 #include<sys/types.h>
  3 #include<stdlib.h>
  4 #include<string.h>
  5 #include<sys/socket.h>
  6 #include<netinet/in.h>
  7 #include<arpa/inet.h>
  8 #include<fcntl.h>
  9 static void usage(const char*proc)
 10 {
 11     printf("Usage:%s [local_ip] [local_port]\n",proc);
 12 }
 13 int main(int argc,char*argv[])
 14 {
 15     if(argc!=3)
 16     {
 17         usage(argv[0]);
 18         return 1;
 19     }
 20     int sock=socket(AF_INET,SOCK_DGRAM,0);
 21     if(sock<0)
 22     {
 23         perror("socket");
 24         return 2;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值