一种简单的基于utp通信
- 创建套接字 使用socket
- 载入自己的绑定信息(客户端可以选择不绑定,这将使用系统随机分配的端口) IP Port
- 绑定信息(如果bing绑定) bing
- 载入服务端绑定信息 IP Port
- 设置缓冲,即要发送的信息存放处
- 使用 载入的服务端地址和端口 发送sendto
- 创建套接字 使用socket
- 载入自己的绑定信息(客户端可以选择不绑定,这将使用系统随机分配的端口) IP Port
- 绑定信息(如果bing绑定) bing
- 设置缓冲,即要接受的信息存放处
- 接受信息/监听端口 ** recvfrom**
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<string.h>#define N 128int main(int argc, char const *argv[]){if(argc != 3 && argc != 5){fprintf(stderr,"C ---> Sn""Error: Missing operands!n""Usage: %s [IP] [Port]n""Example: %s 192.168.1.1 5000n",argv[0],argv[0]);exit(1);}int sockfd;if((sockfd = socket(AF_INET,SOCK_DGRAM,0)) == -1){perror("fail to socket!n");exit(1);}printf("sockfd = %dn",sockfd);#if 1if( argc == 5){struct sockaddr_in clientaddr;clientaddr.sin_family = AF_INET;clientaddr.sin_addr.s_addr = inet_addr(argv[3]);clientaddr.sin_port = htons(atoi(argv[4]));if(bind(sockfd,(struct sockaddr *)&clientaddr,sizeof(clientaddr)) == -1){perror("fail to bind");exit(1);}}
#endifstruct sockaddr_in serveraddr;socklen_t addrlen = sizeof(serveraddr);serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));char buf[N]="";while(1){fgets(buf,N,stdin);buf[strlen(buf)-1] = '