服务器端接受网络连接请求编程

来源:百度知道 编辑:UC知道 时间:2024/06/03 15:11:48
我想实现这样一个功能,希望大家帮个忙~~

遵循传统的socket编程方法,采用TCP连接,在通信前建立可靠的连接,连接成功后,主socket号fork一个子socket。在获得子socket号后我们创建一个子线程,在子线程中利用该子socket号与客户端进行通信,通信结束后中止子线程。而主socket一直处于监听状态,等待接受其他连接。

/************************

* client

************************/

#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>

#define SERV_ADDR "127.0.0.1"
#define SERV_PORT 5358
#define BUF_LEN 1024

void str_cli(FILE *fp, int sockfd)
{
char sendbuf[BUF_LEN] = {0};
char recvbuf[BUF_LEN] = {0};

while(1) {
bzero(sendbuf, BUF_LEN);
bzero(recvbuf, BUF_LEN);
scanf("%s", sendbuf);
write(sockfd, sendbuf, strlen(sendbuf));
read(sockfd, recvbuf, strlen(sendbuf));
printf("recieve: %s\n", recvbuf);
}
return;
}

int main(int argc, char **argv)
{
int fd;
struct sockaddr_in servaddr;

fd = so