读书人

Linux C 网络编程4. 容易TCP Sock

发布时间: 2013-11-04 16:56:03 作者: rapoo

Linux C 网络编程——4. 简单TCP Socket程序

根据图中的流程,实现一个最简单的TCP程序。

Linux C 网络编程——4. 容易TCP Socket程序

1. 客户端

功能:发送一个字符串给服务器

/* ============================================================================ Name        : SimpleSockTCPServer.c Author      : wistone Version     : Copyright   : 2012 - 2015 Description : Simple Socket Server ============================================================================ */#include <stdio.h>#include <stdlib.h>#include <arpa/inet.h>#include <sys/socket.h>int main( int argc , char ** argv ){struct sockaddr_in saddr, caddr;char buf[100] ;char str[100] ;int listenfd, connfd;int addr_len;listenfd = socket( AF_INET, SOCK_STREAM, 0 );memset ( &saddr, 0, sizeof(saddr) );memset( buf, 0, 100 );memset( buf, 0, 100 );saddr.sin_family = AF_INET;saddr.sin_port = htons( 8001 );saddr.sin_addr.s_addr = htonl( INADDR_ANY ); //any addressbind( listenfd, (struct sockaddr *)&saddr, 16 );listen( listenfd, 20 );printf( "Accepting connections ... \n" );int i, n;while(1){addr_len = sizeof( caddr );connfd = accept( listenfd, (struct sockaddr*)&caddr, &addr_len );//n = read( listenfd, buf, 100 );n = recv( listenfd, buf, 100, 0  );printf("Recive from %s : %d \n",  inet_ntop( AF_INET, &caddr.sin_addr, str, sizeof(str) ), ntohs(caddr.sin_port) );for(i=0; i<n; i++){buf[i] = toupper( buf[i] );}//write( connfd, buf, n+1 );send( connfd, buf, n+1, 0 );printf("Send : %s \n", buf);close( connfd );}return 0;}

3. 参考

[1] Linux C编程一站式学习

[2] Linux 网络编程

读书人网 >编程

热点推荐