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();
}
相关文章推荐
- [屌丝PM]做一个网络“拾穗者”(2)
- [屌丝PM]做一个网络“拾穗者”(1)
- Learning Redis - 收集网络知识
- 一个网络服务程序报errno 22的情况
- hdu 4183 Pahom on Water 网络流
- hdu 4183 Pahom on Water 网络流
- 从socket开始讲IOS网络编程
- android访问网络和SD卡必须配置
- 此博客主人已搬家访问新家地址:http://write.blog.csdn.net/postlist
- TCP/IP协议族
- 要脱大家一起脱:网络实名制与官员财产透明化
- IOS中http请求使用 cookie
- 在VMware中Linux系统的网络配置解析
- TOMCAT HTTPS访问配置应用
- c# Http下载
- 发布Https的WebService并访问
- 浅谈HTTP中Get与Post的区别
- 使用tcpdump监控网络消息发送
- delphi tcp http proxy
- HyperV虚拟机一网络性能问题解决方法