服务器
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#define MAXLINE 4096
#define SERVER_PORT 1234
using namespace std;
int main()
{
int listenfd,connfd;
struct sockaddr_in seraddr;
struct sockaddr_in cliaddr;
char buff[MAXLINE] = {};
int len;
if (-1 == (listenfd = socket(PF_INET,SOCK_STREAM,0)))
{
cout<<"create socket failed!"<<endl;
return 0;
}
else
{
cout<<"create socket success!"<<endl;
}
memset(&seraddr,0,sizeof(seraddr));
seraddr.sin_family = AF_INET;
seraddr.sin_addr.s_addr = htonl(INADDR_ANY);
seraddr.sin_port = htons(SERVER_PORT);
if (-1==bind(listenfd,(struct sockaddr*)&seraddr,sizeof(seraddr)))
{
cout<<"bind socket failed!"<<endl;
return 0;
}
else
{
cout<<"bind socket success!"<<endl;
}
if (-1==listen(listenfd,10))
{
cout<<"listen socket failed!"<<endl;
return 0;
}
else
{
cout<<"listen socket success!"<<endl;
}
socklen_t clilen = sizeof(cliaddr);
if (-1==(connfd = accept(listenfd,(struct sockaddr*)&cliaddr,&clilen)))
{
cout<<"accept socket failed!"<<endl;
return 0;
}
else
{
cout<<"accept socket success!"<<endl;
}
while ((len = recv(connfd,buff,MAXLINE,0)>0))
{
cout<<"recv msg from client:"<<buff<<endl;
if (0 == strcmp(buff,"quit"))
{
break;
}
memset(buff,0,MAXLINE);
}
close(connfd);
close(listenfd);
return 0;
}
客户端
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#define MAXLINE 4096
#define SERVER_PORT 1234
#define SERVER_ADDR "127.0.0.1"
using namespace std;
int main()
{
int clientfd;
struct sockaddr_in seraddr;
char buff[MAXLINE] = {};
memset(&seraddr,0,sizeof(seraddr));
seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(SERVER_PORT);
seraddr.sin_addr.s_addr = inet_addr(SERVER_ADDR);
if (-1==(clientfd = socket(PF_INET,SOCK_STREAM,0)))
{
cout<<"create socket error!"<<endl;
return 0;
}
if (-1 == connect(clientfd,(struct sockaddr*)&seraddr,sizeof(seraddr)))
{
cout<<"connect failed"<<endl;
return 0;
}
cin>>buff;
while (0 != strcmp(buff,"quit"))
{
if (-1 == send(clientfd,buff,strlen(buff),0))
{
cout<<"send msg: \""<<buff<<" \" success"<<endl;
}
memset(buff,0,MAXLINE);
cin>>buff;
}
close(clientfd);
return 0;
}
原文链接: https://www.cnblogs.com/fensi/p/12214711.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/192087
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!