#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
void usage(char* arg)
{
printf("%s [server_ip][server_port]\n",arg);
}
int main(int argc,char* argv[])
{
if(argc != 3)
{
usage(argv[0]);
return 1;
}
int sock = socket(AF_INET,SOCK_DGRAM,0);
if(sock < 0)
{
perror("socket");
return 2;
}
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(atoi(argv[2]));
server.sin_addr.s_addr = inet_addr(argv[1]);
char buf[1024];
while(1)
{
printf("Plase Enter:");
fflush(stdout);
ssize_t s = read(0,buf,sizeof(buf)-1);
buf[s]=0;
sendto(sock,buf,strlen(buf),0,(struct sockaddr*)&server,sizeof(server));
socklen_t len = sizeof(server);
s = recvfrom(sock,buf,sizeof(buf)-1,0,(struct sockaddr*)&server,&len);
if(s < 0)
{
perror("recvfrom");
return 3;
}
printf("%s",buf);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
void usage(char* arg)
{
printf("%s [local_ip][local_port]\n",arg);
}
int main(int argc,char* argv[])
{
if(argc != 3)
{
usage(argv[1]);
return 1;
}
int sock = socket(AF_INET,SOCK_DGRAM,0);
if(sock < 0)
{
perror("socket");
return 2;
}
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(atoi(argv[2]));
server.sin_addr.s_addr = inet_addr(argv[1]);
if(bind(sock,(struct sockaddr*)&server,sizeof(server)) < 0)
{
perror("bind");
return 3;
}
char buf[1024];
while(1)
{
struct sockaddr_in client;
socklen_t len = sizeof(client);
ssize_t s = recvfrom(sock,buf,sizeof(buf)-1,0,(struct sockaddr*)&client,&len);
if(s < 0)
{
perror("recvfrom");
return 4;
}
buf[s]=0;
printf("%s",buf);
sendto(sock,buf,strlen(buf),0,(struct sockaddr*)&client,sizeof(client));
}
return 0;
}
udp_server
最新推荐文章于 2023-06-04 23:01:12 发布