C语言实现TCP通信
来源:互联网 发布:为知笔记产品经理 招聘 编辑:程序博客网 时间:2024/04/20 03:41
服务器端:
#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <unistd.h>#include <netinet/in.h>#define SERVPORT 3333#define BACKLOG 10#define MAX_CONNECTED_NO 10#define MAXDATASIZE 5int main() { struct sockaddr_in server_sockaddr, client_sockaddr; int sin_size, recvbytes; int sockfd, client_fd; char buf[MAXDATASIZE]; if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } printf("socket success! sockfd = %d\n", sockfd); server_sockaddr.sin_family = AF_INET; server_sockaddr.sin_port = htons(SERVPORT); server_sockaddr.sin_addr.s_addr = INADDR_ANY; bzero(&(server_sockaddr.sin_zero), 8); if(bind(sockfd, (struct sockaddr *)&server_sockaddr, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); } printf("bind success!\n"); if(listen(sockfd, BACKLOG) == -1) { perror("listen"); exit(1); } printf("listening!\n"); if((client_fd = accept(sockfd, (struct sockaddr *)&client_sockaddr, &sin_size)) == -1) { perror("accept"); exit(1); } if((recvbytes = recv(client_fd, buf, MAXDATASIZE, 0)) == -1) { perror("recv"); exit(1); } //cout << "received a connection: " << buf << endl; close(sockfd); return 0;}
客户端:
#include <stdio.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#define SERVPORT 3333#define MAXDATASIZE 100int main(int argc, char *argv[]) { int sockfd, sendbytes; char buf[MAXDATASIZE]; struct hostent *host; struct sockaddr_in serv_addr; if(argv < 2) { fprintf(stderr, "Please enter the server is hostname!\n"); exit(1); } if((host = gethostbyname(argv[1])) == NULL) { perror("gethostbyname"); exit(1); } if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(SERVPORT); serv_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(serv_addr.sin_zero), 8); if(connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1) { perror("connect"); exit(1); } if((sendbytes = send(sockfd, "hello", 5, 0)) == -1) { perror("send"); exit(1); } char revcBuf[100]; recv(sockfd, revcBuf, 100, 0); close(sockfd); return 0;}
0 0
- C语言实现TCP通信
- C语言socket编程----实现TCP通信
- Linux下C语言实现TCP通信
- c语言实现TCP的socket通信
- C语言实现DOS下的TCP/IP通信
- C语言实现服务端和客户端进行TCP通信实例
- C语言实现服务端和客户端进行TCP通信实例
- c 语言下 TCP/UDP 通信
- linux下c语言tcp通信
- C语言实现scoket通信。
- c语言聊天室Tcp通信出现的问题
- tcp通信简单实例(java语言实现)
- Linux C语言实现的Socket通信
- C语言--利用UDP实现socket通信
- C语言Socket实现网络通信
- C 语言 实现的socket 通信
- C 语言 实现的socket 通信
- c语言中如何实现网络通信
- 学生信息管理设计
- Differences between UDID and UUID
- C++第八章
- Java:String和Date、Timestamp之间的转换
- 非常有意思的一个页面加载条js----PACEJS
- C语言实现TCP通信
- C语言预处理运算符详解
- eSpace VTM Solution在金融信贷领域的应用开发
- vector容器
- cocos2d-x 屏幕适配
- Java中的clone方法详解
- 图像二值化阈值自动选取
- 函数范式编程
- DT10在某研究所一大型应用程序通信问题中的应用