当前位置: 技术问答>linux和unix
liunx网络编程的问题——关于I/O复用的
来源: 互联网 发布时间:2015-06-17
本文导语: 这是学习unix网络编程的一个程序,服务器接受客户发过来的字符串,回送并保存;当客户退出时打印所有信息 问题: 服务器端启动后没有任何响应和输出,客户能连接上,但不能收发字符。 服务器端程序: #include...
这是学习unix网络编程的一个程序,服务器接受客户发过来的字符串,回送并保存;当客户退出时打印所有信息
问题:
服务器端启动后没有任何响应和输出,客户能连接上,但不能收发字符。
服务器端程序:
#include "unp.h"
#define MAXCHAR 1024
#define PORT 1120
struct CLIENT
{
int fd;
int first;
char *name;
struct sockaddr_in addr;
char *data;
};
int main()
{
int lisfd,confd;
int num,i,maxi,maxfd,sockfd;
int nready;
fd_set rset, allset;
socklen_t clisize;
struct sockaddr_in cliaddr,servaddr;
struct CLIENT client[1024];
char recvbuf[MAXCHAR],sendbuf[MAXCHAR];
lisfd=socket(AF_INET,SOCK_STREAM,0);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
servaddr.sin_port = htons(PORT);
bind(lisfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
listen(lisfd,LISTENQ);
clisize=sizeof(cliaddr);
maxfd=lisfd;
maxi=-1;
for (i =0; i
问题:
服务器端启动后没有任何响应和输出,客户能连接上,但不能收发字符。
服务器端程序:
#include "unp.h"
#define MAXCHAR 1024
#define PORT 1120
struct CLIENT
{
int fd;
int first;
char *name;
struct sockaddr_in addr;
char *data;
};
int main()
{
int lisfd,confd;
int num,i,maxi,maxfd,sockfd;
int nready;
fd_set rset, allset;
socklen_t clisize;
struct sockaddr_in cliaddr,servaddr;
struct CLIENT client[1024];
char recvbuf[MAXCHAR],sendbuf[MAXCHAR];
lisfd=socket(AF_INET,SOCK_STREAM,0);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
servaddr.sin_port = htons(PORT);
bind(lisfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
listen(lisfd,LISTENQ);
clisize=sizeof(cliaddr);
maxfd=lisfd;
maxi=-1;
for (i =0; i