udp編程 udp應(yīng)用服務(wù)器程序有哪些?
udp應(yīng)用服務(wù)器程序有哪些?#包含ltstdio.hgt#包含ltstring.hgt#包含ltunistd.hgt#包含ltsys/types.hgt#包含ltsys/socket.hgt#包含lt

udp應(yīng)用服務(wù)器程序有哪些?
#包含ltstdio.hgt
#包含ltstring.hgt
#包含ltunistd.hgt
#包含ltsys/types.hgt
#包含ltsys/socket.hgt
#包含ltstdlib.hgt
#包含ltnetinet/in.hgt
#包含ltarpa/inet.hgt
#定義端口1234
#定義MAXDATASIZE 100
int main(void)
{
int sockfd
服務(wù)器中的結(jié)構(gòu)sockaddr_in
客戶端中的結(jié)構(gòu)sockaddr_in
足球隊
整數(shù)
char buf[MAXDATASIZE]
if((sockfd=socket(AF_INET,SOCK_DGRAM,0))==-1)
{
perror(# 34創(chuàng)建套接字失敗。
#34)
出口(1)
}
bzero(ampserver,sizeof(server))
_family=AF_INET
_port=htons(端口)
_addr.s_addr=htonl(INADDR_ANY)
if(bind(sockfd,(struct sockaddr *)ampserver,sizeof(server))==-1)
{
錯誤(#34Bind().
#34)
出口(1)
}
len=sizeof(客戶端)
while(1)
{
num=recvfrom(sockfd,buf,MAXDATASIZE,0,(struct sockaddr *)ampclient,amplen)
如果(數(shù)字lt 0)
{
perror(#34recvfrom()錯誤。
#34)
出口(1)
}
buf[num]=#390#39
printf(# 34您從客戶端收到一條消息lt%sgt .
它的互聯(lián)網(wǎng)協(xié)議(Internet Protocol的縮寫)是%s,端口是%d
#34,buf,inet_ntoa(_addr),htons(_port))
發(fā)送到(足球,# 34歡迎光臨
#34,8,0,(struct sockaddr *)ampclient,len)
如果(!strcmp(buf,#34bye#34) ){
破裂
}
}
關(guān)閉(足球)
} #包含ltstdio.hgt
#包含ltstdlib.hgt
#包含ltunistd.hgt
#包含ltstring.hgt
#包含ltsys/types.hgt
#包含ltsys/socket.hgt
#包含ltnetinet/in.hgt
#包含ltnetdb.hgt
#包含ltarpa/inet.hgt
#定義端口1234
#定義MAXDATASIZE 100
int main(int argc,char *argv[])
{
int sockfd,num
char buf[MAXDATASIZE]
結(jié)構(gòu)主機
結(jié)構(gòu)sockaddr_in服務(wù)器,對等
如果(argc!=3)
{
printf(# 34用法: % s ltIP地址gt ltmessagegt
#34,argv[0])
出口(1)
}
if((sockfd=socket(AF_INET,SOCK_DGRAM,0))==-1)
{
printf(# 34插座()錯誤
#34)
出口(1)
}
bzero(ampserver,sizeof(server))
_family=AF_INET
_port=htons(端口)
_addr.s_addr=inet_addr(argv[1])
_addr.s_addr=inet_addr(argv[1])
if(connect(sockfd,(struct sockaddr *)ampserver,sizeof(server))==-1)
{
printf(# 34連接()錯誤。
#34)
出口(1)
}
send(sockfd,argv[2],strlen(argv[2]),0)
while(1)
{
if((num=recv(sockfd,buf,MAXDATASIZE,0))==-1)
{
printf(#34recv()錯誤。
#34)
出口(1)
}
buf[num]=#390#39
printf(# 34服務(wù)器消息: %s
#34,buf)
破裂
}
關(guān)閉(足球)
}