📄 serversock.cpp
字号:
/******************************************
** 文件名称:serversock.cpp **
** 功 能:Linux下服务器程序 **
** 作 者:唐天明 **
** 日 期:2008-11-17 **
******************************************/
#include <iostream>
#include <cstring>
using namespace std;
#include <arpa/inet.h>
#include <netinet/in.h> // for sockaddr_in
#include <sys/types.h> // for socket
#include <sys/socket.h> // for socket
const int serverport = 4444; //服务器端口号
const int backlog = 10; //最大连接量
const char * serv_ip = "60.12.107.181"; //服务器IP地址
const int maxsize = 100;
int main()
{
int sockfd, isockclint; //sockfd:用来监听;isockclint:用来传输
int sendflag, recvflag; //sendflag:发送标志;recvflag:接收标志
char buf[maxsize];
sockaddr_in serv_sock; //服务器、本地socket
sockaddr_in clint_sock; //客户端socket
//创建socket及判断是否成功
if ((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1)
{
cout <<"server创建socket失败!!" <<endl;
exit(1);
}
else
{
cout <<"server创建socket成功!!" <<endl;
}
//给sockaddr_in结构赋值
serv_sock.sin_family = AF_INET;
serv_sock.sin_port = htons(serverport);
serv_sock.sin_addr.s_addr = inet_addr(serv_ip);
bzero(&(serv_sock.sin_zero),8);
//绑定及判断是否成功
if (bind(sockfd, (struct sockaddr *)&serv_sock, sizeof(struct sockaddr)) == -1)
{
cout <<"server绑定失败!!" <<endl;
exit(1);
}
else
{
cout <<"server绑定成功!!" <<endl;
}
//监听及判短是否成功
if (listen(sockfd, backlog) == -1)
{
cout <<"server监听失败!!" <<endl;
exit(1);
}
else
{
cout <<"server监听成功!!" <<endl;
}
//循环接收客户端发送的信息
while(1)
{
//accept接收信息及判断是否接收成功
int sin_size = sizeof(struct sockaddr_in);
if ((isockclint = accept(sockfd,(struct sockaddr *) &clint_sock, (socklen_t*)&sin_size)) == -1)
{
cout <<"server接收失败!!" <<endl;
exit(1);
}
else
{
cout <<"server接收成功!!" <<endl;
break;
}
}
//recv信息及判断是否接收成功
recvflag = recv(isockclint,buf,maxsize,0);
if (recvflag ==-1)
{
cout <<"server接收不成功!!" <<endl;
exit(1);
}
else
{
cout <<"server接收成功!!" << buf <<endl;
}
//send信息及判断是否发送成功
sendflag = send(isockclint,"Tim hello linux!!",100,0);
if (sendflag == -1)
{
cout <<"server发送不成功!!" <<endl;
exit(1);
}
else
{
cout <<"server 发送成功!!" <<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -