相关函数:send, sendmsg, recv, recvfrom, socket
//将字串返回给client 端
sendto(sockfd, buffer, len, 0, &addr, addr_len);
}
}
执行:请参考recvfrom()
sendto(sockfd, buffer, len, 0, &addr, addr_len);
}
}
执行:请参考recvfrom()
/*利用socket的UDPclient此程序会连线UDPserver,并将键盘输入的字符串传给server。UDPserver范例请参考sendto()。*/#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#definePORT2345#defineSERVER_IP“127.0.0.1”main(){ints,len;structsockaddr_inaddr;intaddr_len=sizeof(structsockaddr_in);
charbuffer[256];/*建立socket*/if((s=socket(AF_INET,SOCK_DGRAM,0))<0){
perror(“socket”);
exit(1);
}/*填写sockaddr_in*/bzero(&addr,sizeof(addr));
addr.sin_family=AF_INET;addr.sin_port=htons(PORT);addr.sin_addr.s_addr=inet_addr(SERVER_IP);while(1){
bzero(buffer,sizeof(buffer));
/*从标准输入设备取得字符串*/len=read(STDIN_FILENO,buffer,sizeof(buffer));
/*将字符串传送给server端*/sendto(s,buffer,len,0,(structsockaddr*)&addr,addr_len);/*接收server端返回的字符串*/len=recvfrom(s,buffer,sizeof(buffer),0,(structsockaddr*)&addr,(socklen_t*)
&addr_len);printf(“receive:%s”,buffer);
}}执行(先执行udpserver再执行udpclient)hello/*从键盘输入字符串*/
receive:hello/*server端返回来的字符串*/