您的位置:首页 > 理论基础 > 计算机网络

windows网络编程学习笔记二

2014-03-20 17:46 211 查看

面向连接的通信

1.服务器api函数

步骤:第一步是用socket将给定的协议的套接字绑定到一直的名称上,通过调用bind api来完成

第二步是将套接字设为监听模式,调用listen函数

第三步是建立连接,调用accept来接受连接。

bind函数定义:

int bind(SOCKET s, //需要套接字

const struct sockaddr FAR* name, //需要sockaddr结构

int namelen //sockaddr结构长度

);

listen函数定义:

int listen(SOCKET s,

int backlog );

accept函数定义:

SOCKET accept(SOCKET s,

struct sockaddr FAR* addr,

int FAR* addrlen);

服务器程序完整代码:

#include<winsock2.h>

void main(void)

{

WASADATA wsaData;//初始化winsock WSAStartuph函数所需

SOCKET ListeningSocket; bind listen accept 函数均需

SOCKET NewConnection;

SOCKADDR_IN ServerAddr;

SOCKADDR_IN ClientAddr;

int Port=5150; //SOCKET_IN结构中需要端口号

WSAStartup(MAKEWORD(2,2),&wsaData);

//创建套接字

ListeningSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

初始化SOCKET_IN结构体

ServerAddr.sin_family=AF_INET;

ServerAddr.sin_port=htons(Port);

ServerAddr.sin_addr.s_addr=htonl(INADDR_ANY);

使用bind函数来绑定套接字

bind(ListeningSocket,&ServerAddr,sizeof(ServerAddr));

//监听客户及连接

listen(ListeningSocket,5);

//连接到达时接受连接

NewConnection=accept(ListeningSocket,&ClientAddr,sizeof(ClientAddr));

//关闭连接

closesocket(NewConnection);

closesocket(ListeningSocket);

WSAClenup();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: