⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcp_svr.c

📁 一个基于linux的TCP/IP协议栈的实现
💻 C
字号:
#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <string.h>#include "my_inet.h"int main(){	int server_sockfd, client_sockfd;	int server_len, client_len;	struct sockaddr_in server_address;	struct sockaddr_in client_address;	server_sockfd = socket( MY_AF_INET, SOCK_STREAM, MY_IPPROTO_TCP );	server_address.sin_family = MY_AF_INET;	server_address.sin_addr.s_addr = inet_addr("172.16.48.13");	server_address.sin_port = htons(5002);	server_len = sizeof(server_address);	int option = 2;	if( setsockopt( server_sockfd, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option) ) < 0 ){		perror("setsockopt: ");		return -1;	}	if( bind( server_sockfd, (struct sockaddr *)&server_address, server_len ) < 0 ){		perror("bind: ");		return -1;	}	if( listen( server_sockfd, 5 ) < 0 ){		perror("listen: ");		return -1;	}	while(1){		char buf[4096];		printf("server waiting\n");		client_len = sizeof( client_address );		client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len );		read( client_sockfd, buf, sizeof(buf) );		printf("the rcv: %s\n", buf );		//snprintf( buf, sizeof(buf), "I received you packet! thank you!\n");		printf("%s\n", buf );		write( client_sockfd, buf, strlen(buf) );		close(client_sockfd);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -