client.c
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.j>
#include <unsitd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char* argv[])
{
int fd=0;
struct sockaddr_in servaddr;
char buf[8]="";
fd=socket(AF_INET,SOCK_DGREM,0);
if(fd<0)
{
printf(“socket error%s,%d”,FILE_,LIEN);
return 1;
}
memset(&servaddr,0,sizeof(servaddr));
seraddr.sin_family=AF_INET;
seraddr.sin_port=htons(9393);
inet_aton(“127.0.0.1”,&servaddr.sin_addr);
sendto(fd,“hello”,6,0,(struct socket*)&servaddr,sizeof(servaddr));
recvfrom(fd,buf,6,0,NULL,NULL);
printf(“buf=%s”,buf);
close(fd);
return 0;
}
int main(int argc,char* argv[])
{
int fd=0;
struct sockaddr_in servaddr;
char buf[8]="";
int ret=0;
fd=socket(AF_INET,SOCK_DGARM,0);
if(fd<0)
{
printf(“scoket error%s:%d”,FILE,LINE);
reutrn 1;
}
memset(&servaddr,0,sizeof(aervsddr));
serrvaddr.sin_family=ATF_INET;
servaddr.sin_port=htons(9393);
inet_aton(“127.0.0.1”,&servaddr.sin_addr);
ret=connect(fd,(struct sockaddr*)&servaddr,sizeof(servaddt));
if(ret<0)
{
printf(“server can not be reached”);
close(fd);
return 1;
}
send(fd,“hello”,6,0);
recv(fd,buf,6,0);
printf(“buf=%s”,hello);
close(fd);
return 0;
}
server.c
color=red size=72 face=“黑体”
int main(int argc,char* argv[])
{
int fd=0;
struct sockaddr_in servaddr;
struct sockaddr_in cliaddr;
char buf[8]=""
socket_t len;
fd=socket(AF_INET,SOCK_DGARM,0);
if(fd<0)
{
printf("socket failed");
return 1;
}
memset (&servaddr,0,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(9393);
inet_aton(“127.0.0.1”,&servaddr.sin_addr);
bind(fd,(struct socket*)&servaddr,sizeof(servaddr));
recvfrom(fd,buf,6.0,(struct socket*)&cliaddr,&len);
printf(“buf=%s”,buf);
sendto(fd,“hello”,6,0,(struct socket*)&cliaddr,sizeof(cliaddr));
clsoe(fd);
return 0;
}
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char *argv[])
{
int fd = 0;//接受socket描述符
struct sockaddr_in servaddr;//socket()函数用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源。
char buf[8] = “”;//接受缓冲
fd = socket(AF_INET,SOCK_DGRAM,0);//socket()函数用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源。套接口所用的协议 不指定可以设为0;
if(fd < 0)
{
printf("socket error %s:%d\n",__FILE__,__LINE__);
return 1;
}
memset(&servaddr,0,sizeof(servaddr)); //初始化servaddr
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(9393);//将整型变量从主机字节顺序转变成网络字节顺序,
inet_aton("127.0.0.1",&servaddr.sin_addr);//inet_aton 将点分十进制ip转化为网络序类ip地址
sendto(fd,"hello",6,0,(struct sockaddr *)&servaddr,sizeof(servaddr));
//int sendto(scoket s,const void* msg,int len,unsigned int flags,const struct socket* to ,int tolen);
// flags 一般为0 to 用来指定地址 tolen 为socketaddr的长度
//发送未建立连接的UDP数据包
recvfrom(fd,buf,6,0,NULL,NULL);
//用来接收远程主机经指定的socket传来的数据,
printf("buf=%s\n",buf);
close(fd);//关闭链接
return 0;
}
}