服务端:

#include "stdafx.h"
#include <Winsock2.h>
#include <cstdio>
#include <iostream>#pragma comment(lib,"ws2_32.lib")int main()
{WSADATA wsdata = {0};WSAStartup(MAKEWORD(2, 2), &wsdata);   //Winsock服务的初始化,这句话一定要放在前面SOCKET socketServer = socket(AF_INET, SOCK_STREAM, 0);SOCKADDR_IN addserver;addserver.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//INADDR_ANY表示任何IPaddserver.sin_family = AF_INET;addserver.sin_port = htons(6000);auto res=bind(socketServer, (SOCKADDR*)&addserver, sizeof(SOCKADDR));listen(socketServer, 5);printf("服务器已启动:\n监听中...\n");SOCKET socketClient;SOCKADDR_IN addClient;int len = sizeof(SOCKADDR);char charsendBuf[100];//发送至客户端的字符串char charrecvBuf[100];//接受客户端返回的字符串//会阻塞进程,直到有客户端连接上来为止socketClient = accept(socketServer, (SOCKADDR*)&addClient, &len);//接收并打印客户端数据recv(socketClient, charrecvBuf, 100, 0);printf("%s\n", charrecvBuf);//关闭socketclosesocket(socketClient);WSACleanup();
}

客户端:

#include "stdafx.h"
#define _WINSOCK_DEPRECATED_NO_WARNINGS 1
#include <Winsock2.h>
#include <cstdio>
#include <iostream>#pragma comment(lib,"ws2_32.lib")
int main()
{WSADATA wsaData;SOCKET sockClient;//客户端Socketsockaddr_in addrServer;//服务端地址WSAStartup(MAKEWORD(2, 2), &wsaData);//新建客户端socketsockClient = socket(AF_INET, SOCK_STREAM, 0);//定义要连接的服务端地址addrServer.sin_addr.s_addr = inet_addr("127.0.0.1");//目标IP(127.0.0.1是回送地址)addrServer.sin_family = AF_INET;addrServer.sin_port = htons(6000);//连接端口6000//连接到服务端connect(sockClient, (SOCKADDR*)&addrServer, sizeof(SOCKADDR));auto err = GetLastError();std::cout << err;//发送数据char message[20] = "HelloSocket!";send(sockClient, message, strlen(message) + 1, 0);//关闭socketclosesocket(sockClient);WSACleanup();return 0;
}

服务器端编程的步骤:

1:加载套接字库,创建套接字(WSAStartup()/socket());

2:绑定套接字到一个IP地址和一个端口上(bind());

3:将套接字设置为监听模式等待连接请求(listen());

4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

5:用返回的套接字和客户端进行通信(send()/recv());

6:返回,等待另一连接请求;

7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

客户端编程的步骤:

1:加载套接字库,创建套接字(WSAStartup()/socket());

2:向服务器发出连接请求(connect());

3:和服务器端进行通信(send()/recv());

4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

转载于:https://www.cnblogs.com/kevinWu7/p/10163537.html

C++ Socket 实例相关推荐

  1. java 报文请求_http 请求报文和响应报文编写 (java socket实例)

    http 请求头由三部分组成:请求行.请求头部.请求体 GET / HTTP/1.1\r\n Host: 114.55.40.20\r\n Content-Type: text/html;charse ...

  2. go mysql socket_Go语言实现socket实例

    本文实例讲述了Go语言实现socket的方法.分享给大家供大家参考.具体分析如下: 用golang不用他的net包还有什么意义,这里提供一个测试代码: server.go 服务端: package m ...

  3. python socket实例

    1.客户端向服务端发送 #coding:utf-8 '''客户端''' import socket khd=socket.socket() #声明socket类型,同时生产socket连接对象 khd ...

  4. socket实例java_Javasocket应用实例

    Javasocket应用实例 引导语:运用Java,我们可以编出很多有趣的'小程序,以下是百分网小编分享给大家的Javasocket应用实例,希望大家喜欢! 用于本机上的客户端与服务器对话的小程序: ...

  5. 【Socket】Python UDP和TCP的socket实例

    Socket UDP socket UDP Server端 UDP Client端 TCP socket TCP Server端 TCP Client端 总结 代码下载 Socket Socket又称 ...

  6. socket python实例_Python网络编程—第27课—Socket实例(0531)

    一.创建套接字示例(服务端) import socket #导入模块 import time #导入模块 s = socket.socket(socket.AF_INET, socket.SOCK_S ...

  7. Socket 实例之透析java,C#的互操作

    java,c#编程语言编写的程序之间是可以互相操作的.用java写的Socket聊天功能的服务端和客户端之间,和用C#编写的Socket聊天功能的服务端和客户端之间是可以相互通信的.简单的说就是,把C ...

  8. php socket 实例代码

    说明: 1.代码分两部分,一部分是服务端代码 为server.php,另一部分是客户端代码web.php 效果展示: 1.启动服务端代码脚本,没有报错表示启动成功 可以新开一个终端看一下端口是不是成功 ...

  9. socket简介及java实例

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP的封装 ...

最新文章

  1. iOS之使用CoreImage进行人脸识别
  2. 【收藏】webpack configuration.module has an unknown property ‘loaders‘. These properties arevalid: 解决办法
  3. Java tate只要年月日,Java初學者入門必須掌握的30個基本概念
  4. [资源分享] Github上八千Star的深度学习500问教程
  5. java ReentrantLock 使用
  6. 十一、CSS初始化详解
  7. 网站压力测试工具webbench 安装与使用
  8. 页面无法正常显示,淘宝又崩了!周五上班摸鱼被发现...
  9. ES11新特性_绝对全局对象globalThis---JavaScript_ECMAScript_ES6-ES11新特性工作笔记067
  10. 白帽黑客眼中的网络安全 挡黑客财路曾收恐吓信
  11. 计算机usb速度设置,怎样提升USB2.0的速度 注册列表修改法【详解】
  12. java开发spc分析软件,告诉你们什么才叫真的SPC软件?
  13. python win32api键盘_python基于win32api实现键盘输入
  14. Python线程安全的单例模式
  15. 时间序列分类实践介绍(使用Python代码)
  16. 曾宪武《物联网通信技术》课后答案(四)
  17. 读书笔记——晶体管电路设计
  18. vue拖拽辅助线+改变元素大小组件
  19. Go语言核心之美 1.4-包和文件
  20. 集电极开路,漏极开路

热门文章

  1. 数据库系统概论王珊编写的第三章学生-课程数据库
  2. Redis 与 set(无序集合) 相关的常用命令
  3. 基于html5背景图片自适应代码
  4. iOS设计模式之单例模式
  5. 一个月读完6本书?这些烧脑神书,你能读完1本,就是学霸!
  6. wordcloud里面设置mask加载不出来词频_一条龙搞定情感分析:文本预处理、加载词向量、搭建RNN
  7. 腾讯阿里美团相继搞事,渣本程序员的出路在哪?
  8. 原创 | 为什么阿里巴巴建议开发者谨慎使用继承?
  9. 腾讯再发股票吸引人才,受益2.57万名员工,人均超8万港元
  10. oracle简单对象类型