Windows下基于socket多线程并发通信的实现


本文介绍了在Windows 操作系统下基于TCP/IP 协议Socket 套接口的通信机制以及多线程编程知识与技巧,并给出多线程方式实现多用户与服务端(C/S)并发通信模型的详细算法,最后展现了用C++编写的多用户与服务器通信的应用实例并附有程序。 关键词:Windows;套接字;多线程;并发服务器; Socket 是建立在传输层协议(主要是TCP 和UDP)上的一种套接字规范,最初由美国加州Berkley 大学提出,为UNIX 系统开发的网络通信接口,它定义了两台计算机之间通信的规范,socket 屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP 协议软件和实现了Socket 规范的计算机之间的通信成为可能,Socket 接口是TCP/IP 网络最为通用的应用接口,也是在Internet 上进行网络程序应用开发最通用的API[1],本文介绍了Socket通信的基本机制以及采用多线程技术实现并发通信的基本原理,并给出实例。
资源截图
代码片段和文件信息
#include “stdafx.h“
#include “Socket.h“

#pragma comment(lib“WS2_32.LIB“)


//********************************************************************************************************/
//** 函数名 ** SocketInit()
//**  输入  ** 无
//**  输出  ** 无
//**函数描述** 加载套接字
//********************************************************************************************************/
int SocketInit()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested=MAKEWORD(22);
err = WSAStartup(wVersionRequested&wsaData); //返回0,成功,否则就是错误码

if (err!=0)
{
printf(“WinSock DLL版本不足要求n“);
return 0;
}

if (LOBYTE(wsaData.wVersion)!=2||
HIBYTE(wsaData.wVersion)!=2)
{
WSACleanup();
return 0;
}

return 1;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      32256  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadDebugSocketClient.exe

     文件     365276  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadDebugSocketClient.ilk

     文件     568320  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadDebugSocketClient.pdb

     文件       8616  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugBuildLog.htm

     文件         65  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugmt.dep

     文件      25268  2015-04-06 16:21  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugSocket.obj

     文件        663  2015-04-06 16:21  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugSocketClient.exe.embed.manifest

     文件        728  2015-04-06 16:21  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugSocketClient.exe.embed.manifest.res

     文件        621  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugSocketClient.exe.intermediate.manifest

     文件      30491  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugSocketClient.obj

     文件    3211264  2015-04-06 16:21  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugSocketClient.pch

     文件      12821  2015-04-06 16:21  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugstdafx.obj

     文件     486400  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugvc90.idb

     文件     176128  2015-04-07 14:47  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientDebugvc90.pdb

     文件       1213  2015-03-30 16:15  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientReadMe.txt

     文件        786  2015-04-06 16:01  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientSocket.cpp

     文件        988  2015-04-06 16:01  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientSocket.h

     文件       2979  2015-04-07 14:58  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientSocketClient.cpp

     文件       4635  2015-04-06 16:01  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientSocketClient.vcproj

     文件       1427  2015-04-07 14:58  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientSocketClient.vcproj.USER-20140331IT.Administrator.user

     文件       1427  2015-03-30 22:00  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientSocketClient.vcproj.USER-20141117OX.Administrator.user

     文件       2029  2015-04-06 15:56  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientSocketSever.cpp

     文件        217  2015-03-30 16:15  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientstdafx.cpp

     文件        233  2015-03-30 16:15  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientstdafx.h

     文件        498  2015-03-30 16:15  Socket(TCP)SocketClientThreadSocketClientThreadSocketClient argetver.h

     文件   11324416  2015-03-30 22:12  Socket(TCP)SocketClientThreadSocketClientThreadSocketClient.ncb

    ..A..H.     10752  2015-03-30 22:12  Socket(TCP)SocketClientThreadSocketClientThreadSocketClient.suo

     文件   11348992  2015-04-07 14:58  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientThread.ncb

     文件        902  2015-03-30 16:15  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientThread.sln

    ..A..H.     10240  2015-04-07 14:58  Socket(TCP)SocketClientThreadSocketClientThreadSocketClientThread.suo

............此处省略43个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)