TCP服务端和客户端程序示例
来源:互联网 发布:et鼠标 知乎 编辑:程序博客网 时间:2024/06/06 02:50
服务端:
#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <errno.h>#include <string.h>#define BUFFER_SIZE 1024int main( int argc, char* argv[] ){ if( argc <= 2) { printf( "usage: %s ip_address port_number \n", basename( argv[0] ) ); return 1; } const char* ip = argv[1]; int port = atoi( argv[2] ); int sock_fd, conn_fd; int nbytes = 0; char buf[BUFFER_SIZE]; struct sockaddr_in server_addr; bzero( &server_addr, sizeof( server_addr ) ); server_addr.sin_family = AF_INET; inet_pton( AF_INET, ip, &server_addr.sin_addr ); server_addr.sin_port = htons( port ); sock_fd = socket( PF_INET, SOCK_STREAM, 0 ); assert( sock_fd >= 0 ); int ret = bind( sock_fd, ( struct sockaddr* )&server_addr, sizeof( server_addr ) ); assert( ret != 1 ); ret = listen ( sock_fd, 5 ); assert( ret != -1 ); struct sockaddr_in client_addr; socklen_t client_addrlength = sizeof( client_addr ); while( 1 ) { memset ( buf, '\0', BUFFER_SIZE ); conn_fd = accept( sock_fd, ( struct sockaddr* )&client_addr, &client_addrlength ); if( conn_fd < 0 ) { printf( "accept failed, errno is: %d\n", errno ); break; } printf( "Connect successed: %s\n", inet_ntoa( client_addr.sin_addr ) ); if( (nbytes = recv( conn_fd, buf, BUFFER_SIZE-1, 0 )) == -1 ) { printf( "recv failed, errno is: %d\n", errno ); break; } printf( "Server received: %s\n", buf ); close( conn_fd ); } close( sock_fd ); return 0;}
#include <sys/socket.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#define BUFFER_SIZE 512int main( int argc, char* argv[] ){ if( argc <= 2 ) { printf( "usage: %s ip_adderss port_number \n", basename( argv[0] ) ); return 1; } const char* ip = argv[1]; int port = atoi( argv[2] ); char buf[BUFFER_SIZE]; struct sockaddr_in server_addr; bzero( &server_addr, sizeof( server_addr ) ); server_addr.sin_family = AF_INET; inet_pton( AF_INET, ip, &server_addr.sin_addr ); server_addr.sin_port = htons( port ); int sock_fd = socket( PF_INET, SOCK_STREAM, 0 ); assert( sock_fd >= 0 ); if( connect( sock_fd, (struct sockaddr* )&server_addr, sizeof( server_addr ) ) == -1 ) { printf("cannot connect the server: %s\n", inet_ntoa(server_addr.sin_addr) ); close( sock_fd ); return -1; } memset( buf, '\0', BUFFER_SIZE ); printf( "Please input message: \n" ); fgets(buf, BUFFER_SIZE, stdin); send(sock_fd, buf, BUFFER_SIZE, 0 ); close( sock_fd ); return 0;}
0 0
- TCP服务端和客户端程序示例
- udp服务端和客户端程序示例
- 一个TCP 服务端和客户端程序
- ace TCP 服务端和客户端简单程序
- php编写TCP服务端和客户端程序
- php编写TCP服务端和客户端程序
- Mina TCP服务端客户端 示例
- Mina TCP服务端客户端 示例
- Mina TCP服务端客户端 示例
- TCP客户、服务端程序示例
- Hessian服务端和客户端示例
- tcp服务端和客户端交互
- 简单TCP服务端和客户端
- TCP服务端和客户端(7)
- TCP服务端和客户端(8)
- TCP服务端和客户端(9)
- TCP服务端和客户端测试
- 【python】tcp网络程序-客户端/服务端
- 验证身份证号码
- RMAN Recovery Catalog(恢复目录)
- hdu 5265 pog loves szh II
- 微信公众号第三方平台全网发布测试程序
- DELL R430安装WINDOWS 2008 R2 RAID卡无驱动
- TCP服务端和客户端程序示例
- the file “XXX” could not be opened because you don't have permission to view it
- 表单验证概述
- poj 2109 Power of Cryptography 贪心 暑假第四题
- Mina 起源和作者简介
- 什么是Ajax
- Linux 忘记密码处理方法
- 每天一个linux命令(13):less 命令
- App Extensions 基本学习 iOS8