LINUX下TCP套接口重复服务器编程范例
来源:互联网 发布:域名除了建站还能干啥 编辑:程序博客网 时间:2024/05/22 16:55
服务器端
#include <stdio.h>
#include <sys/socket.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
main()
{
int nSocket,nCliSocket;
int nCliLen;
struct sockaddr_in sin,cli_sin;
//struct sockaddr_in *p = &sin;
char buf[INET_ADDRSTRLEN+1];
char recvBuf[20];
memset(buf,0x00,sizeof(buf));
memset(recvBuf,0x00,sizeof(recvBuf));
if((nSocket=socket(PF_INET,SOCK_STREAM,0))<0)
{
fprintf(stderr,"socket errno:%s\n",strerror(errno));
exit(0);
}
bzero(&sin,sizeof(struct sockaddr_in));
//memset(p,0x00,sizeof(struct sockaddr_in));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=htonl(INADDR_ANY);
sin.sin_port=htons(6666);
if(bind(nSocket,(struct sockaddr *)&sin,sizeof(sin))<0)
{
fprintf(stderr,"bind errno:%s \n",strerror(errno));
close(nSocket);
exit(0);
}
printf("Bind success! \n");
listen(nSocket,SOMAXCONN);
//sleep(600);
while(1)
{
nCliLen = sizeof(cli_sin);
if((nCliSocket = accept(nSocket,(struct sockaddr *)&cli_sin,&nCliLen))<0)
{
fprintf(stderr,"accept errno:%s \n",strerror(errno));
continue;
}
printf("accept connection from \ %s:%d \n",inet_ntop(AF_INET,&cli_sin.sin_addr,buf,sizeof(buf)),ntohs(cli_sin.sin_port));
recv(nCliSocket,recvBuf,sizeof(recvBuf),0);
printf("receive data : %s \n",recvBuf);
close(nCliSocket);
continue;
}
close(nSocket);
return;
}
客户端
#include <stdio.h>
#include <sys/socket.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
main()
{
int nSocket;
struct sockaddr_in sin;
//struct sockaddr_in *p = &sin;
char sendBuf[20];
memset(sendBuf,0x00,sizeof(sendBuf));
strcpy(sendBuf,"send ok");
if((nSocket=socket(PF_INET,SOCK_STREAM,0))<0)
{
fprintf(stderr,"socket errno:%s\n",strerror(errno));
exit(0);
}
bzero(&sin,sizeof(struct sockaddr_in));
//memset(p,0x00,sizeof(struct sockaddr_in));
if(inet_pton(AF_INET,"192.168.123.12",&(sin.sin_addr))!=1)
{
fprintf(stderr,"inet_pton error:%s\n",strerror(errno));
exit(0);
}
sin.sin_family=AF_INET;
//sin.sin_addr.s_addr=htonl("127.0.0.1");
sin.sin_port=htons(6666);
if(connect(nSocket,(struct sockaddr *)&sin,sizeof(sin))<0)
{
fprintf(stderr,"connect errno:%s \n",strerror(errno));
close(nSocket);
exit(0);
}
printf("connect success! \n");
send(nSocket,sendBuf,sizeof(sendBuf),0);
//listen(nSocket,SOMAXCONN);
//sleep(60);
close(nSocket);
return;
}
- LINUX下TCP套接口重复服务器编程范例
- linux网络编程之二TCP套接口编程
- 基本TCP套接口编程
- 基本TCP套接口编程
- TCP套接口编程(Socket)
- linux下面TCP套接口编程 client/server实例
- TCP套接口通信工作流程(Linux下)
- 网络编程2 - TCP套接口编程
- linux套接口编程基础
- c++ Linux下 socket tcp&udp编程简单范例
- 基本TCP套接口编程一
- 基本TCP套接口编程一
- 基本TCP套接口编程函数
- 第四章:基本TCP套接口编程
- 基本的tcp套接口编程
- Unix网络编程 第一卷 套接口API 第五章 TCP客户/服务器程序例子
- Linux C 网络编程——3. TCP套接口编程
- Linux C 网络编程——3. TCP套接口编程
- Android 实现书籍翻页效果
- properties例子
- epoll模型设计海量级连接服务器
- sybase卸载
- 最简约JS日历控件
- LINUX下TCP套接口重复服务器编程范例
- Let's go!!!
- 在Linux下使用自己编写的驱动程序详细步骤
- linux中用shell获取昨天、明天或多天前的日期
- 开发 PHP 扩展 DLL
- [C#]委托的两种用法
- 探讨人类越过奇点实现指数增长
- crontab命令详解
- Oracle RAC之名词解惑