【winsock2】windows网络编程 之 TCP/IP Client

有了 TCP/IP Server的编程知识及技巧http://blog.csdn.net/ieczw/article/details/19493311

对于Client  (客户端的编程就简单了很多!)

【winsock2】windows网络编程 之 TCP/IP Client_第1张图片

图 1 服务器程序与客户端程序基本流程

【winsock2】windows网络编程 之 TCP/IP Client_第2张图片

图2 服务器与客户端通信图

还是按照以下几步来完成客户端与服务器间的通信:

1、加载和初始化套接字

#include <WinSock2.h>

#pragma comment(lib,"ws2_32.lib")

WSADATA wsa_data;

int ret;

ret = WSAStartup(MAKEWORD(2.2),&wsa_data); // 返回非0失败

2、创建套接字

SOCKET fd_socket;

fd_socket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

如果创建失败返回INVALID_SOCKET

3、连接服务器

SOCKADDR_IN server_addr;

server_addr.sin_family = AF_INET; //Internet协议

server_addr.sin_port = htons(3400);

server_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

ret = connet(fd_socket,(SOCKADDR *)&server_addr,sizeof(SOCKADDR)); //连接失败则返回SOCKET_ERROR

如果想知道错误代码,则可以用 WSAGetLastError();

4、向服务器发送数据

char send_buff[512];

memset(send_buff,0x0,512);

strcpy(send_buff,"Hello");

ret = send(fd_socket,buff,strlen(buff),0); //发送失败则返回SOCKET_ERROR

5、接收服务器发来的数据

char buff[512];

memset(buff,0x0,512);

ret = recv(fd_socket,buff,512,0); //接收失败则返回 SOCKET_ERROR

ret为实际接收字节数;

6、关闭客户端并释放套接字

closesocket(fd_socket);

WSACleanup();


请大家多多指教!

你可能感兴趣的:(Socket网络编程)