Server
#include <windows.h>
#include <iostream>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
using namespace std;
int main()
{
int sockfd=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in my_addr;
my_addr.sin_family=AF_INET;
my_addr.sin_addr.s_addr=INADDR_ANY;
my_addr.sin_port=htons(1234);
int opt_val = 1;
setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt_val,(const char*)sizeof(opt_val));
if(bind(sockfd,(sockaddr*)&my_addr,sizeof(my_addr))==-1)
{
perror("bind()");
close(sockfd);
return 0;
}
listen(sockfd,5);
int connfd=accept(sockfd,NULL,NULL);
char buff[500];
int ret=recv(connfd,buff,sizeof(buff)-1,0);
buff[ret]='\0';
cout<<buff<<endl;
cin>>buff;
send(connfd,buff,strlen(buff),0);
close(connfd);
close(sockfd);
return 0;
}
Client
#include <iostream>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
using namespace std;
int main()
{
int sockfd=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in srv_addr;
srv_addr.sin_family=AF_INET;
srv_addr.sin_addr.s_addr=inet_addr("128.0.33.188");
srv_addr.sin_port=htons(1234);
if(-1==connect(sockfd,(sockaddr*)&srv_addr,sizeof(srv_addr)))
{
perror("connect()");
close(sockfd);
return 0;
}
char buff[500];
cin>>buff;
send(sockfd,buff,strlen(buff),0);
bzero(buff,sizeof(buff));
recv(sockfd,buff,sizeof(buff)-1,0);
cout<<buff<<endl;
close(sockfd);
return 0;
}