1.需要的头文件和库
进行Windows网络编程,你需要在你的程序中包含WINSOCK2.H或MSWSOCK.H,
同时你需要添加引入库WS2_32. LIB或WSOCK32.LIB。准备好后,你就可以着手建立你的第一个网络程序了。
2.一个简单的client的例子
#include <stdio.h>
#include <WinSock.h>
#pragma comment(lib,"WS2_32.LIB")
void main()
{
WSADATA wsd;
SOCKET sClient;
UINT port = 3785;
char szIp[] = "10.140.21.103";
int iAddrSize;
struct sockaddr_in server;
WSAStartup( 0x11 , &wsd );
sClient = socket( AF_INET , SOCK_STREAM ,0);
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr( szIp );
server.sin_port = htons( port );
connect( sClient , (struct sockaddr*)&server , sizeof( server ) );
char buf[] = "jiangdewei sfdsdfsdfsdfsd.";
send(sClient,buf,strlen(buf),0);
closesocket(sClient);
windows 的5种编程模型:
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。
Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。
这里需要注意的是:WSAAsyncSelect和WSAEventSelect调用后,套接字被自动设置为非阻塞模式 。这里就是WSA前缀的作用。