VS2013【windows】 尝试简单socket连接
来源:互联网 发布:网络商务英语 编辑:程序博客网 时间:2024/05/20 23:36
只有代码
服务器端:
#ifndef _CRT_SECURE_NO_WARNINGS#define _CRT_SECURE_NO_WARNINGS#endif#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")#define MAXLINE 4096int main(){SOCKET listenfd;int connfd;struct sockaddr_in servaddr;char buff[MAXLINE + 1];int n;// windows 下需要初始化socketWORD sockVersion = MAKEWORD(2, 2);WSADATA wsaData;if (WSAStartup(sockVersion, &wsaData) != 0){printf("init socket error: %s(error: %d)\n", strerror(errno), errno);system("pause");return 0;}// end socket初始化if ((listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){printf("create socket error: %s(error: %d)\n", strerror(errno), errno);system("pause");return 0;}memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(6666);if (bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1){printf("bind socket error: %s(errno: %d)\n", strerror(errno), errno);system("pause");return 0;}if (listen(listenfd, 10) == -1){printf("listen socket error: %s(errno: %d)\n", strerror(errno), errno);system("pause");return 0;}printf("======waiting for client's request======\n");if ((connfd = accept(listenfd, NULL, NULL)) == -1){printf("accept socket error: %s(errno: %d)", strerror(errno), errno);system("pause");return 0;}// 接收消息while (true){memset(buff, 0, sizeof(buff));n = recv(connfd, buff, MAXLINE, 0);buff[n] = '\0';printf("recv msg from client: %s\n", buff);}// 释放socketclosesocket(connfd);closesocket(listenfd);system("pause");return 0;}
客户端:
#ifndef _CRT_SECURE_NO_WARNINGS#define _CRT_SECURE_NO_WARNINGS#endif#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <winsock2.h>#include <WS2tcpip.h>#pragma comment(lib,"ws2_32.lib")int main(){int sockfd, n;char recvline[4096], sendline[4096];struct sockaddr_in servaddr;WORD sockVersion = MAKEWORD(2, 2);WSADATA wsaData;if (WSAStartup(sockVersion, &wsaData) != 0){printf("init socket error: %s(error: %d)\n", strerror(errno), errno);system("pause");return 0;}printf("please enter service ipv4 address: ");char IPV4[20];gets(IPV4);if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){printf("create socket error: %s(errno: %d)\n", strerror(errno), errno);system("pause");return 0;}memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(6666);if (inet_pton(AF_INET, IPV4, &servaddr.sin_addr) <= 0){printf("inet_pton error for %s\n", IPV4);system("pause");return 0;}if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0){printf("connect error: %s(errno: %d)\n", strerror(errno), errno);system("pause");return 0;}while (true){printf("send msg to server: \n");memset(sendline, 0, sizeof(sendline));fgets(sendline, 4096, stdin);if (send(sockfd, sendline, strlen(sendline), 0) < 0){printf("send msg error: %s(errno: %d)\n", strerror(errno), errno);system("pause");return 0;}}closesocket(sockfd);system("pause");return 0;}
阅读全文
0 0
- VS2013【windows】 尝试简单socket连接
- 简单尝试windows多线程程序
- 简单尝试windows多线程程序
- windows下的socket的面向连接简单编程
- vs2013 MFC Socket UDP 简单聊天工具
- 简单socket连接
- windows vs2013连接数据库mysql示例代码
- windows socket 简单实例
- windows socket简单编程
- windows socket简单封装
- windows socket 简单实现
- 关于vs2013上面socket连接错误的问题
- 判断socket是否连接(windows socket)
- 判断socket是否连接(windows socket)
- Windows Socket 最大连接数
- Windows Socket 最大连接数
- Windows Socket 最大连接数
- Windows Socket 最大连接数
- easyUI分页中,如何实现页面跳转,再返回时,仍然到跳转前页数。(含页面显示条数)
- 操作系统内存存储管理
- json类型数据解析汇总--笔记
- Solr-6.5.1从mysql数据库增量导入数据
- RNN的简单理解
- VS2013【windows】 尝试简单socket连接
- Java 泛型总结(一):基本用法与类型擦除
- ERROR tool.ImportTool: Import failed: java.io.IOException: Hive does not support the SQL type for co
- K
- Git各开发分支管理规范
- Apache Kafka desrialization vulnerability via runtime
- 在大型应用中使用 Redux 的五个技巧
- docker命令
- ROS之参数服务