2. 服务器
约定双方的传输协议(UDP或者TCP),根据传输协议创建socket;
将地址和端口绑定到socket;
对端口进行侦听,直到侦听到有连接信息;
接收连接,然后将数据写回连接中。
将地址和端口绑定到socket
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int MAXLINE=1024;
int main(int argc,char **argv)
{
int listenfd,connfd;
struct sockaddr_in servaddr;
char buff[MAXLINE];
time_t ticks;
listenfd=socket(AF_INET,SOCK_STREAM,0);//建立socket
if(listenfd<0)
{
cout<
exit(0);
}
memset(&servaddr,0, sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(8080);
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
int bindfd=bind(listenfd,(sockaddr*)&servaddr,sizeof(servaddr));//将地址和端口绑定到socket
if(bindfd<0)
{
cout<
exit(0);
}
listen(listenfd,MAXLINE);//监听连接,一直阻塞,直到有连接出现
while(1)
{
connfd=accept(listenfd,(sockaddr*)NULL,NULL);//接收连接传递的数据
ticks=time(NULL);
snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks));
cout<
write(connfd,buff,strlen(buff));//将传递的数据写回到socket中
close(connfd);
}
return 0;
}