服务器端接受网络连接请求编程
来源:百度知道 编辑:UC知道 时间:2024/06/03 15:11:48
我想实现这样一个功能,希望大家帮个忙~~
遵循传统的socket编程方法,采用TCP连接,在通信前建立可靠的连接,连接成功后,主socket号fork一个子socket。在获得子socket号后我们创建一个子线程,在子线程中利用该子socket号与客户端进行通信,通信结束后中止子线程。而主socket一直处于监听状态,等待接受其他连接。
遵循传统的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