📄 srv.c
字号:
#include "kapp.h"
int main()
{
int sckSrv,sckCln,numbytes;
struct sockaddr_in srv;
struct sockaddr_in cln;
int sin_size;
char buf[MAXDATASIZE];
char tmpbuf[128];
pthread_t tid;
AppInit();
if((sckSrv = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
KExit("Create Socket failed!");
}
int opt = SO_REUSEADDR;
setsockopt(sckSrv,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
bzero(&srv,sizeof(srv));
srv.sin_family = AF_INET;
srv.sin_port = htons(PORT);
srv.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(sckSrv,(struct sockaddr*)&srv,sizeof(struct sockaddr)) == -1)
{
KExit("Bind failed!");
}
if(listen(sckSrv,BACKLOG) == -1)
{
KExit("Listen failed!");
}
sin_size = sizeof(struct sockaddr_in);
ShowTips("Waitting client connecting ...");
if((sckCln = accept(sckSrv,(struct sockaddr*)&cln,&sin_size)) == -1)
{
KExit("Accept failed!");
}
sprintf(tmpbuf,"We got a connection from %s",inet_ntoa(cln.sin_addr));
ShowTips(tmpbuf);
pthread_create(&tid,NULL,KRecv,(void*)sckCln);
ShowTips("Input message for send to client:");
while(1)
{
bzero(buf,MAXDATASIZE);
GetSendingMsg(buf);
numbytes = send(sckCln,buf,strlen(buf),0);
if(numbytes == -1) KExit("\nsend() failed!");
if(strncmp(buf,"exit",4) == 0) break;
}
close(sckCln);
close(sckSrv);
AppClean();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -