基于TCP Socket例子

本文展示了一个基于TCPSocket的编程示例,包括WSAStartup初始化、socket创建、bind绑定、listen监听、accept接收连接及send发送数据的完整流程。示例使用Winsock在Windows环境下实现。

这是个基于TCP Socket的例子,流程是WSAStartup()->socket()->bind()-accept()->send()

#pragma comment(lib,"ws2_32.lib")
#include<winsock2.h>
#include<stdio.h>
int main()
{
	SOCKET mysock,tsock;	//定义套接字
	struct sockaddr_in my_addr;		//本地地址信息
	struct sockaddr_in their_addr;	//连接者地址信息
	int sin_size;
	WSADATA wsa;
	WSAStartup(MAKEWORD(2,2),&wsa);		//初始化Windows Socket

	//建立socket
	mysock=socket(AF_INET,SOCK_STREAM,0);
	my_addr.sin_family=AF_INET;		//协议类型是INET
	my_addr.sin_port=htons(1234);	//绑定端口1234
	my_addr.sin_addr.s_addr=INADDR_ANY;	//本机IP
	bind(mysock,(struct sockaddr *)&my_addr,sizeof(struct sockaddr));

	//listen,监听端口
	listen(mysock,1);	//等待连接数目
	printf("listen...");

	//等待客户端连接
	sin_size=sizeof(struct sockaddr_in);
	tsock=accept(mysock,(struct sockaddr *)&their_addr,&sin_size);
	
	//有连接就发送Hello!字符过去
	send(tsock,"Hello\n",sizeof("Hello!\n"),0);
	printf("send ok!\n");

	//成功,关闭套接字
	closesocket(mysock);
	closesocket(tsock);
	return 0;
}

1.#pragma comment( comment-type ,["commentstring"] )
comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。
commentstring是一个提供为comment-type提供附加信息的字符串。

http://baike.baidu.com/view/3487831.htm

2.WSAStartup,即WSA(Windows SocKNDs Asynchronous,Windows异步套接字)的启动命令。是Windows下的网络编程接口软件Winsock1 或 Winsock2 里面的一个命令(Ps:Winsock 是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口)。

http://baike.baidu.com/view/2794415.htm

转载于:https://www.cnblogs.com/shanmao/archive/2012/11/20/2779303.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值