Windows网络编程学习笔记(4) 编写一个TCP客户端

Socket TCP/IP 客户端编程

分为3个步骤:
1.socket()/WSASocket()    //创建一个客户端socket
2.Address resolution    //指定服务端地址

3.connect()/WSAConnet()    //与服务端建立连接


1.socket()/WSASocket()    //创建一个客户端socket


SOCKET ClientSocket;
ClientSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

创建失败返回INVALID_SOCKET

2.Address resolution    //指定服务端地址


SOCKADDR_IN ServerAddr;    //服务器地址
ServerAddr.sin_family=AF_INET;    //填充 SOCKADDR_IN 数据结构
ServerAddr.sin_port=htons(port);
ServerAddr.sin_addr.s_addr=inet_addr("127.0.0.1");

3.connect()/WSAConnet()    //与服务端建立连接


connect(SOCKET s,const struct sockaddr FAR * name,int namelen);


连接失败返回INVALID_SOCKET


现在你已经可以写一个完整的Socket TCP/IP 客户端了,代码如下:

#include <Winsock2.h>
#include <iostream>
#define PORT 5000
using namespace std;

int main(void)
{
WSADATA wsaData;    //Winsock数据结构
SOCKET ClientSocket;    //客户端socket
SOCKADDR_IN ServerAddr;    //服务器地址
int port=PORT;    //端口号

WSAStartup(MAKEWORD(2,2),&wsaData);    //初始化 Winsock 2.2 版本
ClientSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);    //创建客户端socket
	
ServerAddr.sin_family=AF_INET;    //填充 SOCKADDR_IN 数据结构
ServerAddr.sin_port=htons(port);
ServerAddr.sin_addr.s_addr=inet_addr("127.0.0.1");
connect(ClientSocket,(SOCKADDR*)&ServerAddr,sizeof(ServerAddr));

closesocket(ClientSocket);    //关闭socket  
WSACleanup();    //关闭Winsock  

return 0;
}


下一章将详解send()/WSASend() 、 recv()/WSARecv() 和 函数,然后就可以编写一个可运行的通讯程序了。

你可能感兴趣的:(C++,windows,socket,网络编程,winsock)