基于TCP Socket例子

这是个基于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

posted @   山貓  阅读(238)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示