Winsock2使用记录如何为?
摘要:本文地址:https:www.cnblogs.comoberon-zjt0806p14814144.html WinSock 2 MSDN文档:https:docs.microsoft.comen-uswindowswi
本文地址:https://www.cnblogs.com/oberon-zjt0806/p/14814144.html
WinSock 2 MSDN文档:https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-start-page-2
一个很好的范例(如果我的代码有问题,可供参考这个):https://github.com/gaohaoning/cpp_socket
目录什么是WinSock?WorkflowServer Side(服务端)初始化WSA建立服务端套接字为Server socket绑定地址启动服务端监听获取连入的客户端收发数据关闭套接字、释放WSAClient Side(客户端)与服务端的积极连接当你遇到错误时……代码汇总ServerClient
什么是WinSock?
这还不简单,当然是Windows的袜子啦
WinSock(全称Windows Sockets)是巨硬微软提供的用于Windows平台的C++网络连接库。
简单来说我们知道在Java中,我们可以通过JDK提供的java.net库来实现建立套接字的TCP/UDP传输:
public class Client
{
private String svrip = "";
private int port;
public AnotherClient(String serverIP,int port) {
svrip = serverIP;
this.port = port;
}
public void Start() {
Socket cltsock = null; // Client's socket
OutputStream ostrm = null; // O-stream for sending to server
BufferedWriter bwriter = null;
InputStream istrm = null;
BufferedReader breader = null;
try {
cltsock = new Socket(svrip,port);
System.out.println(String.format("Client at %s has started.", cltsock.getInetAddress().toString()));
istrm = cltsock.getInputStream();
// .....后面不写了,意思意思得了
WinSock的功能与之类似,只不过因为结构僵化的C++标准委员会迟迟不将专用于C++网络连接的<network>纳入STL(标准库)中,所以我们这里只好委曲求全地使用Windows的标准,在Linux环境中,替代品为系统内核提供的<sys/socket.h>库。不过整体使用上,两者区别并不那么大。
Winsock比较常用的有两类版本——1.1和2.x。本文这里,当然了,标题也说了,以Winsock2为准,建立一个IPv4协议下的传输链路。
Workflow
嗯,自从因为各种原因对自己产生了一个巨大的否定以来,我发现总结一个具体的工作流程(Workflow)出来还是挺重要的一件事。
