PS:网络很重要,好好学~~~!!!
下面赋今天学习的代码:
[cpp] view plain copy
/*******************
服务器
*******************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define SERV_PORT 8000
int main(int argc, char *argv[])
{
if(argc != 2)
{
printf("Please input one IP!!\n");
exit(-1);
}
int n_read;
char buffer[1024]; //缓冲
struct sockaddr_in client; //存放客户端信息
int len = sizeof(client); //存放客户端的类型长度
struct sockaddr_in servaddr; //服务器端
bzero(&servaddr,sizeof(servaddr)); //清零
servaddr.sin_family = AF_INET; //服务器端遵循IPV4
servaddr.sin_addr.s_addr = inet_addr(argv[1]); //传入服务器端地址,inet_addr,将字符串转换成地址
servaddr.sin_port = htons(SERV_PORT); //端口号,宏定义为8000
int sock = socket(AF_INET,SOCK_STREAM,0); //服务器的套接字
if(sock == -1)
{
perror("sock ");
exit(-1);
}
if((bind(sock,(struct sockaddr *)&servaddr,sizeof(servaddr))) == -1) //将套接字与服务器信息绑在一起
{
perror("bind ");
exit(-1);
}
if((listen(sock,5)) == -1) //设置监听器
{
perror("listen ");
exit(-1);
}
int fd = accept(sock,(struct sockaddr *)&client,&len); //打开接收端,将客户端信息传入client中,len会得到客户端地址长度
if(fd == -1)
{
perror("accept ");
exit(-1);
}
printf("client address:%s\n",inet_ntoa(client.sin_addr.s_addr)); //打印客户端地址
printf("client port:%d\n",len); //打印客户端地址长度
while(1)
{
memset(buffer,0,sizeof(buffer));
n_read = read(fd,buffer,sizeof(buffer)); //读取客户端发送的信息
if(n_read == -1)
{
perror("read ");
exit(-1);
}
printf("information : %s\n",buffer); //打印信息
}
return 0;
}
[cpp] view plain copy
/*******************
客户端
*******************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define SERV_PORT 8000
int main(int argc, char *argv[])
{
if(argc != 2)
{
printf("Please input server IP!\n");
exit(-1);
}
int con;
char buffer[1024];
int sock = socket(AF_INET,SOCK_STREAM,0); //定义客户端的套接字
struct sockaddr_in server;
bzero(&server,sizeof(server));
server.sin_family = AF_INET; //链接服务器遵循IPV4
server.sin_addr.s_addr = inet_addr(argv[1]); //需要链接的服务器地址
server.sin_port = htons(SERV_PORT);
if(connect(sock,(struct sockaddr *)&server,sizeof(server)) == -1) //将客户端与服务器链接链接
{
perror("connect ");
exit(-1);
}
while(1)
{
memset(buffer,0,sizeof(buffer));
printf("Please input infornamtion:\n");
scanf("%s",buffer);
write(sock,buffer,sizeof(buffer)); //向服务器发送数据
}
return 0;
}
下面赋今天学习的代码:
[cpp] view plain copy
/*******************
服务器
*******************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define SERV_PORT 8000
int main(int argc, char *argv[])
{
if(argc != 2)
{
printf("Please input one IP!!\n");
exit(-1);
}
int n_read;
char buffer[1024]; //缓冲
struct sockaddr_in client; //存放客户端信息
int len = sizeof(client); //存放客户端的类型长度
struct sockaddr_in servaddr; //服务器端
bzero(&servaddr,sizeof(servaddr)); //清零
servaddr.sin_family = AF_INET; //服务器端遵循IPV4
servaddr.sin_addr.s_addr = inet_addr(argv[1]); //传入服务器端地址,inet_addr,将字符串转换成地址
servaddr.sin_port = htons(SERV_PORT); //端口号,宏定义为8000
int sock = socket(AF_INET,SOCK_STREAM,0); //服务器的套接字
if(sock == -1)
{
perror("sock ");
exit(-1);
}
if((bind(sock,(struct sockaddr *)&servaddr,sizeof(servaddr))) == -1) //将套接字与服务器信息绑在一起
{
perror("bind ");
exit(-1);
}
if((listen(sock,5)) == -1) //设置监听器
{
perror("listen ");
exit(-1);
}
int fd = accept(sock,(struct sockaddr *)&client,&len); //打开接收端,将客户端信息传入client中,len会得到客户端地址长度
if(fd == -1)
{
perror("accept ");
exit(-1);
}
printf("client address:%s\n",inet_ntoa(client.sin_addr.s_addr)); //打印客户端地址
printf("client port:%d\n",len); //打印客户端地址长度
while(1)
{
memset(buffer,0,sizeof(buffer));
n_read = read(fd,buffer,sizeof(buffer)); //读取客户端发送的信息
if(n_read == -1)
{
perror("read ");
exit(-1);
}
printf("information : %s\n",buffer); //打印信息
}
return 0;
}
[cpp] view plain copy
/*******************
客户端
*******************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define SERV_PORT 8000
int main(int argc, char *argv[])
{
if(argc != 2)
{
printf("Please input server IP!\n");
exit(-1);
}
int con;
char buffer[1024];
int sock = socket(AF_INET,SOCK_STREAM,0); //定义客户端的套接字
struct sockaddr_in server;
bzero(&server,sizeof(server));
server.sin_family = AF_INET; //链接服务器遵循IPV4
server.sin_addr.s_addr = inet_addr(argv[1]); //需要链接的服务器地址
server.sin_port = htons(SERV_PORT);
if(connect(sock,(struct sockaddr *)&server,sizeof(server)) == -1) //将客户端与服务器链接链接
{
perror("connect ");
exit(-1);
}
while(1)
{
memset(buffer,0,sizeof(buffer));
printf("Please input infornamtion:\n");
scanf("%s",buffer);
write(sock,buffer,sizeof(buffer)); //向服务器发送数据
}
return 0;
}