5.5日志

来源:互联网 发布:手机淘宝保证金在哪交 编辑:程序博客网 时间:2024/05/01 08:52

今天:

1.网络编程

 socket套接字:

a。客户端

1。创建套接字,socket(AF_INET,SOCK_stream,0)

socket(通常为af_inet,套接字类型,常为0)

2.先连接服务器端地址和客户端的套接字:函数 connect

connect(m_client,(sockaddr *)&serveraddr, sizeof(serveraddr))

connect(客户端套接字,服务器端地址(不只是ip,还有端口号等),地址的空间大小)

3.WSAAsynSelect(m_client,m_hwnd, 1000,FD_READ);//该函数不是很清楚。 大致理解如下

  

WSAAsyncSelect(Sock, hWnd, 自定义消息, 网络事件)

发生了某 网络事件,就相应 自定义消息,然后去相应消息处理函数。

4.在建立连接的套接字之间发送数据

send(客户端的套接字,存放要发送数据的缓冲区,缓冲区的长度,函数调用方式);

5.接受服务端来的消息。

如果消息等于1000 这个消息号,那么 就执行5

6.接受来自服务端的数据

recv(客户端的套接字,存放接受数据的缓冲区,长度,方式);

这里主要:   为什么第一个是客户端的套接字呢?个人认为,服务端先把数据发到了客户端的套接字上,客户端要从本地的套接字上面 取数据。

 

b.服务端

1.创建套接字

2.同上面2

3.设置本机地址

sockaddr_in serveraddr;服务端地址

。sin_family   为AF_INET

.sin_addr.s_un.s_addr =inet_addr(服务器的ip);inet——addr这个函数的作用是把数据转变为ip形式

。sin_port =htons(端口号)htons的作用是把短整型 变为 端口号,还有一个htonl

 

4.绑定本机地址

bind(服务端的套接字,服务端地址(3设定的),大小)

bind(m_server,(sockaddr*)&serveraddr,sizeof(serveraddr))

5.开始监听

listen(m_server,50);后面的50表示,缓冲区里面只能有50个

 

6.接受客户端数据

recv();

7发消息

8.发送数据

send()

 

 

注意:

socket编程 前面要加上头文件

#include "winsock2.h"

#pragma comment(lib,"ws2_32.lib"); 添加链接库

 还要初始化套接字

WSADATA wsd;

WSAStartup(MAKEWORD(2,2),&WSD);参数1版本号,参数2套接字的详细信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击