现在的位置: 首页 > 综合 > 正文

Linux简单Socket编程示例

2018年10月07日 ⁄ 综合 ⁄ 共 1159字 ⁄ 字号 评论关闭

Server端:

#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>


int main()
{
	int sockSrv = socket(AF_INET,SOCK_STREAM,0);
	
	struct sockaddr_in addrSrv;
	bzero(&addrSrv,sizeof(addrSrv));
	addrSrv.sin_family = AF_INET;
	addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
	addrSrv.sin_port = htons(6000);
	bind(sockSrv, (struct sockaddr*)&addrSrv, sizeof(addrSrv));
	
	listen(sockSrv,10);
	
	struct sockaddr_in addrConn;
	int len = sizeof(addrConn);
	
	while(1)
	{
		int sockConn = accept(sockSrv,(struct sockaddr*)&addrConn, &len);
		
		char buf[100] = {0};
		int n = read(sockConn, buf, 100);
		printf("server recv:%s\n",buf);
		
		write(sockConn, "server\n", strlen("server\n"));
		
		close(sockConn);
	}
	
	close(sockSrv);
	
	return -1;
}

Client端:

#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main()
{
	int sockSrv = socket(AF_INET, SOCK_STREAM, 0);
	
	struct sockaddr_in addrSrv;
	bzero(&addrSrv, sizeof(addrSrv));
	addrSrv.sin_family = AF_INET;
	addrSrv.sin_addr.s_addr = inet_addr("127.0.0.1");
	addrSrv.sin_port = htons(6000);
	connect(sockSrv, (struct sockaddr*)&addrSrv, sizeof(addrSrv));
	
	write(sockSrv, "client\n", strlen("client\n"));
	
	char buf[100] = {0};
	int n = read(sockSrv, buf, 100);
	
	printf("client recv:%s\n",buf);
	
	close(sockSrv);
	
	return -1;
}

抱歉!评论已关闭.