Linux 网络编程实现TCP协议下的服务器客户端通信
来源:互联网 发布:数组词 编辑:程序博客网 时间:2024/06/04 18:09
基于TCP协议的客户端代码
/* ************************************************ *Name : Linux Client <span style="white-space:pre"></span>* *Date : 2014-11-10 <span style="white-space:pre"></span>* *Author : marksman<span style="white-space:pre"></span> * *Aim : Linux Client can send and receive <span style="white-space:pre"></span>* *<span style="white-space:pre"></span>message.<span style="white-space:pre"></span>* ************************************************ */#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdlib.h>#include <memory.h>#include <string.h>int main(int argc,char *argv[]){int socketfd,receive_socket;struct sockaddr_in s_add,c_add;unsigned short portnum = 0x22B8;int len;char buf[100];/* *Create the socket */if((socketfd=socket(AF_INET,SOCK_STREAM,0))<0){printf("Socket create error! \n");exit(1);}/* *set the address format */bzero(&s_add,sizeof(struct sockaddr_in));s_add.sin_family = AF_INET;s_add.sin_addr.s_addr = inet_addr("127.0.0.1");//change the string to 32-bit internet byte.s_add.sin_port=htons(portnum);if (connect(socketfd,(struct sockaddr *)(&s_add),sizeof(struct sockaddr))<0){printf("Connect failure!\n");return -1;}elseprintf("Connect Success!\n");/* *Using the loop to send and receive the message. */while(1){memset(buf,'\0',100);printf("Input message to send: ");fgets(buf,100,stdin);len=send(socketfd,buf,strlen(buf)-1,0);if(len<0){printf("send error!\n");exit(1);}else {printf("Send Success! send is : %s \n",buf);}memset(buf,'\0',100);len=recv(socketfd,buf,100,0);if(len<0){printf("recv error!\n");exit(1);}else if(0 == len){printf("client quit!\n");exit(1);}else{printf("receive message is : %s\n",buf);}printf("--------------------------\n");}close(socketfd);}
基于TCP协议的服务器代码
/* ************************************************ *Name : Linux Server <span style="white-space:pre"></span>* *Date : 2014-11-10 <span style="white-space:pre"></span>* *Author : marksman <span style="white-space:pre"></span>* *Aim : Linux Server can send and receive <span style="white-space:pre"></span>* *<span style="white-space:pre"></span>message.It is atom system about <span style="white-space:pre"></span>* *Instant Messaging system. <span style="white-space:pre"></span>* ************************************************ */#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdlib.h>#include <memory.h>#include <string.h>#include <sys/socket.h>int main(int argc,char *argv[]){int socketfd_listen,socketfd_connect;struct sockaddr_in server_addr,client_addr;unsigned short portnum = 0x22B8;int len ;char buf[100];/* *Create the socket */if((socketfd_listen=socket(AF_INET,SOCK_STREAM,0))<0){printf("Socket create error! \n");exit(1);}/* *set the address format */bzero(&server_addr,sizeof(struct sockaddr_in));server_addr.sin_family=AF_INET;server_addr.sin_addr.s_addr=htonl(INADDR_ANY);server_addr.sin_port=htons(portnum);if(bind(socketfd_listen,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))<0){printf("bind failure!\n");return -1;}printf("bind Success!\n");if(listen(socketfd_listen,5)<0){printf("Listen failure!\n");return -1;}len=sizeof(struct sockaddr);socketfd_connect = accept(socketfd_listen, (struct sockaddr *)(&client_addr), &len);if(socketfd_connect<0){printf("accept fail !\n");return -1;}/* *Using the loop to send and receive the message. */while(1){memset(buf,0,100);len=recv(socketfd_connect,buf,100,0);if(len<0){printf("recv error!\n");exit(1);}else if(0 == len){printf("the client quit!\n");break;}else{printf("receive message is : %s \n",buf);}//memset(buf,0,100);//printf("Input message to send : ");//fgets(buf,100,stdin);len=send(socketfd_connect,buf,strlen(buf)-1,0);if(len<0){printf("Send error!\n");exit(1);}else {printf("Send succeed send : %s \n",buf);}printf("------------------------\n");}close(socketfd_listen);close(socketfd_connect);return 0;}
函数详细说明参考《UNIX环境高级编程第二版》
望网友批评指正
0 0
- Linux 网络编程实现TCP协议下的服务器客户端通信
- linux 网络编程:客户端与服务器通过TCP协议相互通信 + UDP
- linux 网络编程:客户端与服务器通过TCP协议相互通信
- linux 网络编程:客户端与服务器通过TCP协议相互通信
- 【Linux网络编程实例】实例二:利用TCP协议进行客户端与服务器通信
- 基于TCP协议实现服务器和客户端的通信程序
- LINUX下如何创建TCP客户端和服务器,实现通信
- linux网络编程--服务器客户端(TCP实现)
- Linux下网络socket编程——实现服务器(select)与多个客户端通信
- linux下C语言编程日志(1):基于TCP协议的服务器/客户端程序
- linux 网络编程之最简单的tcp通信客户端
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- 《java入门第一季》之tcp协议下的网络编程c/s实现通信交互
- Linux下网络编程之自定义协议进行并发多客户端与服务器的通信(多进程处理并发)不足占用资源太多
- Linux环境下服务器和客户端的网络通信
- TCP服务器客户端网络通信
- 【Linux网络编程】基于TCP协议 I/O多路转接(select) 的高性能回显服务器客户端模型
- TCP实现客户端和服务器的通信
- Linux网络协议栈之数据包处理过程
- 判断两个表是否相等
- hibernate属性映射
- 作业-三角形类型判断
- Problem 002——UVa 10082 - WERTYU
- Linux 网络编程实现TCP协议下的服务器客户端通信
- 协方差详解
- poj - 1732 - Phone numbers(dp)
- JAVA基础二基本语法介绍
- Python标准库:内置函数chr(i)
- 设计模式——单例设计模式
- 对于Marven 几个错误的解决方法
- myeclipse 10集成JBoss开发
- Java 8学习之旅1---Lambda表达式