【宝贝推介源码】【测姻缘源码】【eggroll 源码解读】msvcrt源码

2024-11-18 21:24:02 来源:asp源码个人博客源码下载 分类:综合

1.linux下的程序如何在windows下运行

msvcrt源码

linux下的程序如何在windows下运行

       æœ¬è´¨åŒºåˆ«æ˜¯è¿™æ ·çš„,linux下用的是伯克利socket,windows底下用的WinSocket.

        两者其实是大同小异的,不同的地方在以下几点:

        1 头文件不同,在linux下用到的关键头文件<sys/socket.h>

        windows下用到的是 <Winsock2.h>

        2 socket的初始化不一样,在windows下要有一个WSAStartup,而linux 下没有。

        3 具体的细节不一样,linux下的c和windows下的c的一些语法有些出入,你自己找找。

       ä¸‹é¢æˆ‘把windows下的socket通讯的最基本的结构给你,你对照着修改就可以了,一下的程序我调试了一下,编译过了。

       å®¢æˆ·ç«¯

       #include <Winsock2.h>

       #include <stdio.h>

       void main()

       {

       WORD wVersionRequested;

       WSADATA wsaData;

       int err;

       wVersionRequested = MAKEWORD( 1,源码宝贝推介源码 1 );

       err = WSAStartup( wVersionRequested, &wsaData );

       if ( err != 0 ) {

       return;

       }

       if ( LOBYTE( wsaData.wVersion ) != 1 ||

       HIBYTE( wsaData.wVersion ) != 1 ) {

       WSACleanup( );

       return;

       }

       SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

       SOCKADDR_IN addrSrv;

       addrSrv.sin_addr.S_un.S_addr=inet_addr(".0.0.1");

       addrSrv.sin_family=AF_INET;

       addrSrv.sin_port=htons();

       connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

       char recvBuf[];

       recv(sockClient,recvBuf,,0);

       printf("%s\n",recvBuf);

       send(sockClient,"This is lisi",strlen("This is lisi")+1,0);

       closesocket(sockClient);

       WSACleanup();

       }

       æœåŠ¡å™¨ç«¯

       #include <Winsock2.h>

       #include <stdio.h>

       void main()

       {

       WORD wVersionRequested;

       WSADATA wsaData;

       int err;

       wVersionRequested = MAKEWORD( 1, 1 );

       err = WSAStartup( wVersionRequested, &wsaData );

       if ( err != 0 ) {

       return;

       }

       if ( LOBYTE( wsaData.wVersion ) != 1 ||

       HIBYTE( wsaData.wVersion ) != 1 ) {

       WSACleanup( );

       return;

       }

       SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);

       SOCKADDR_IN addrSrv;

       addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

       addrSrv.sin_family=AF_INET;

       addrSrv.sin_port=htons();

       bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

       listen(sockSrv,5);

       SOCKADDR_IN addrClient;

       int len=sizeof(SOCKADDR);

       while(1)

       {

       SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);

       char sendBuf[];

       sprintf(sendBuf,"来自服务器端",

       inet_ntoa(addrClient.sin_addr));

       send(sockConn,sendBuf,strlen(sendBuf)+1,0);

       char recvBuf[];

       recv(sockConn,recvBuf,,0);

       printf("%s\n",recvBuf);

       closesocket(sockConn);

       }

       }

本文地址:http://8o.net.cn/news/81d164998269.html 欢迎转发