|
写了一个简单的C/S的网络通信程序,但服务器端建好后,用netstat -na查 没有发现进程在指定的端口监听,源代码如下:
#include "header.h" //一些必要的头文件都放到这里了
int main(int argc, char *argv[])
{
int listenfd, connectfd;
struct sockaddr_in serveraddr, clientaddr;
socklen_t client;
ssize_t n;
char message[1500];
if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
printf("socket error");
memset(&serveraddr, 0, sizeof(serveraddr));
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
serveraddr.sin_port = htons(88;
if(bind(listenfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0)
printf("bind error");
if(listen(listenfd, 10) < 0)
printf("listen error");
for(; ;)
{
client = sizeof(clientaddr);
if((connectfd = accept(listenfd, (struct sockaddr *)&clientaddr, &client)) < 0)
printf("accept error");
while((n = read(connectfd, message, 1500)) > 0)
{
write(connectfd, message, n);
}
}
}
我加了很多printf函数,用于判断是否正确的建立监听进程,程序运行后没有出现错误提示,但怎么没有进程在888监听呢? |
|