#include
#include
#include
#include
#include
#include
#include
#define PORT 1111 /*使用的port*/
main(){
int sockfd,len;
struct sockaddr_in addr;
int addr_len = sizeof(struct sockaddr_in);
char buffer[256];
/*建立socket*/
if((sockfd=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=htonl(INADDR_ANY) ;
if (bind(sockfd, (struct sockaddr *)&addr, sizeof(addr))<0){
perror("connect");
exit(1);
}
while(1){
bzero(buffer,sizeof(buffer));
len = recvfrom(sockfd,buffer,sizeof(buffer), 0 , (struct sockaddr *)&addr ,&addr_len);
/*显示client端的网络地址*/
printf("receive from %s\n" , inet_ntoa( addr.sin_addr));
/*将字串返回给client端*/
sendto(sockfd,buffer,len,0,(struct sockaddr *)&addr,addr_len);
}
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
#include
#include
#include
#include
#include
#include
#include
#define PORT 1111
#define SERVER_IP "127.0.0.1"
main()
{
int s,len;
struct sockaddr_in addr;
int addr_len =sizeof(struct sockaddr_in);
char buffer[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,(struct sockaddr *)&addr,addr_len);
/* 接收server端返回的字符串*/
len = recvfrom(s,buffer,sizeof(buffer),0,(struct sockaddr *)&addr,&addr_len);
printf("receive: %s",buffer);
}
}
阅读(1286) | 评论(0) | 转发(0) |