tcp--server
#define port 8888
#define ip "192.168.124.60"
int main(int argc, const char *argv[])
{
//创建套接字
int sfd = socket(AF_INET,SOCK_STREAM,0);
if(sfd<0)
{
ERR_MSG("socket");
return -1;
}
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = inet_addr(ip);
//绑定服务器ip和端口
if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin)) <0)
{
ERR_MSG("bing");
return -1;
}
//设置监听
if(listen(sfd,128)<0)
{
ERR_MSG("listen");
return -1;
}
//获取连接成功后的套接字
struct sockaddr_in cin;
socklen_t addrlen = sizeof(cin);
int newfd = accept(sfd,(struct sockaddr*)&cin,&addrlen,0);
ssize_t res = 0;
char buf[128]="";
while(1)
{
bzero(buf,sizeof(buf));
//接收
res = recv(newfd,buf,sizeof(buf),0);
printf("[%s : %d] 收到信息为:%s\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),buf);
//发送
printf("请输入");
fgets(buf,sizeof(buf),stdin);
send(newfd,buf,sizeof(buf),0);
}
//关闭
close(sfd);
close(newfd);
return 0;
}
tcp---client
#include <myhead.h>
#define port 8888
#define ip "192.168.124.60"
int main(int argc, const char *argv[])
{
//创建套接字
int cfd = socket(AF_INET,SOCK_STREAM,0);
if(cfd<0)
{
ERR_MSG("socket");
return -1;
}
//链接服务器
struct sockaddr sin;
socklen_t addrlen = sizeof(sin);
connect(cfd,(struct sockaddr*)&sin,addrlen);
ssize_t res = 0;
char buf[128]="";
while(1)
{
//发送
printf("请输入");
fgets(buf,sizeof(buf),stdin);
buf[strlen(buf)-1] = '\0';
send(cfd,buf,sizeof(buf),0);
printf("send success\n");
bzero(buf,sizeof(buf));
//接收
res = recv(cfd,buf,sizeof(buf),0);
printf("[%s : %d] 收到信息为:%s\n",inet_ntoa(sin.sin_addr),ntohs(sin.sin_port),buf);
}
//关闭
close(sfd);
close(newfd);
return 0;
}
udp---server
#include <myhead.h>
#define port 6666
#define ip "192.168.124.60"
int main(int argc, const char *argv[])
{
//创建套接字
int sfd = socket(AF_INET,SOCK_DGRAM,0);
if(sfd<0)
{
ERR_MSG("socket");
return -1;
}
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = inet_addr(ip);
//绑定服务器ip和端口号
bind(sfd,(struct sockaddr*)&sin,sizeof(sin));
printf("bind success\n");
ssize_t res = 0;
char buf[128]="";
//从哪里接收数据
struct sockaddr_in cin;
socklen_t addrlen = sizeof(cin);
while(1)
{
bzero(buf,sizeof(buf));
//接收数据
res = recvfrom(sfd,buf,sizeof(buf),0,(struct sockaddr*)&cin,&addrlen);
printf("[%s:%d] 接收的数据为:%s\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),buf);
//发送数据
printf("请输入\n");
fgets(buf,sizeof(buf),stdin);
buf[strlen(buf)-1] = '\0';
sendto(sfd,buf,sizeof(buf),0,(struct sockaddr*)&cin,addrlen);
printf("sendto success\n");
}
close(sfd);
return 0;
udp---client
#include <myhead.h>
2 #define port 6666
3 #define ip "192.168.124.60"
4 int main(int argc, const char *argv[])
5 {
6 //创建套接字
7 int sfd = socket(AF_INET,SOCK_DGRAM,0);
8 if(sfd<0)
9 {
10 ERR_MSG("socket");
11 return -1;
12
13 }
14
15 //发送给谁(服务器ip和端口)
16 struct sockaddr_in sin;
17 sin.sin_family = AF_INET;
18 sin.sin_port = htons(port);
19 sin.sin_addr.s_addr = inet_addr(ip);
20
21
22 ssize_t res = 0;
23 char buf[128]="";
24
25 //接收的数据来自哪的
26 struct sockaddr_in cin;
27 socklen_t addrlen = sizeof(cin);
28 while(1)
29 {
30 //发送数据(发送给服务器)
31 printf("请输入\n");
32 fgets(buf,sizeof(buf),stdin);
33 buf[strlen(buf)-1] = '\0';
34 sendto(sfd,buf,sizeof(buf),0,(struct sockaddr*)&sin,addrlen);
35 printf("sendto success\n");
36
37 bzero(buf,sizeof(buf));
38
39 //接收数据
40 res = recvfrom(sfd,buf,sizeof(buf),0,(struct sockaddr*)&cin,&addrlen);
41 printf("[%s:%d] 接收的数据为:%s\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),buf);
42
43 }
44
45 close(sfd);
46 return 0;
47 }
~
~
~
~
~