相关函数:send, sendmsg, recv, recvfrom, socket
        //将字串返回给client 端
       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端返回来的字符串*/

相关文章: