C++ Socket 实例
#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 实例相关推荐
- java 报文请求_http 请求报文和响应报文编写 (java socket实例)
http 请求头由三部分组成:请求行.请求头部.请求体 GET / HTTP/1.1\r\n Host: 114.55.40.20\r\n Content-Type: text/html;charse ...
- go mysql socket_Go语言实现socket实例
本文实例讲述了Go语言实现socket的方法.分享给大家供大家参考.具体分析如下: 用golang不用他的net包还有什么意义,这里提供一个测试代码: server.go 服务端: package m ...
- python socket实例
1.客户端向服务端发送 #coding:utf-8 '''客户端''' import socket khd=socket.socket() #声明socket类型,同时生产socket连接对象 khd ...
- socket实例java_Javasocket应用实例
Javasocket应用实例 引导语:运用Java,我们可以编出很多有趣的'小程序,以下是百分网小编分享给大家的Javasocket应用实例,希望大家喜欢! 用于本机上的客户端与服务器对话的小程序: ...
- 【Socket】Python UDP和TCP的socket实例
Socket UDP socket UDP Server端 UDP Client端 TCP socket TCP Server端 TCP Client端 总结 代码下载 Socket Socket又称 ...
- socket python实例_Python网络编程—第27课—Socket实例(0531)
一.创建套接字示例(服务端) import socket #导入模块 import time #导入模块 s = socket.socket(socket.AF_INET, socket.SOCK_S ...
- Socket 实例之透析java,C#的互操作
java,c#编程语言编写的程序之间是可以互相操作的.用java写的Socket聊天功能的服务端和客户端之间,和用C#编写的Socket聊天功能的服务端和客户端之间是可以相互通信的.简单的说就是,把C ...
- php socket 实例代码
说明: 1.代码分两部分,一部分是服务端代码 为server.php,另一部分是客户端代码web.php 效果展示: 1.启动服务端代码脚本,没有报错表示启动成功 可以新开一个终端看一下端口是不是成功 ...
- socket简介及java实例
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP的封装 ...
最新文章
- iOS之使用CoreImage进行人脸识别
- 【收藏】webpack configuration.module has an unknown property ‘loaders‘. These properties arevalid: 解决办法
- Java tate只要年月日,Java初學者入門必須掌握的30個基本概念
- [资源分享] Github上八千Star的深度学习500问教程
- java ReentrantLock 使用
- 十一、CSS初始化详解
- 网站压力测试工具webbench 安装与使用
- 页面无法正常显示,淘宝又崩了!周五上班摸鱼被发现...
- ES11新特性_绝对全局对象globalThis---JavaScript_ECMAScript_ES6-ES11新特性工作笔记067
- 白帽黑客眼中的网络安全 挡黑客财路曾收恐吓信
- 计算机usb速度设置,怎样提升USB2.0的速度 注册列表修改法【详解】
- java开发spc分析软件,告诉你们什么才叫真的SPC软件?
- python win32api键盘_python基于win32api实现键盘输入
- Python线程安全的单例模式
- 时间序列分类实践介绍(使用Python代码)
- 曾宪武《物联网通信技术》课后答案(四)
- 读书笔记——晶体管电路设计
- vue拖拽辅助线+改变元素大小组件
- Go语言核心之美 1.4-包和文件
- 集电极开路,漏极开路