精华内容
参与话题
问答
  • tcp\udp高级编程VC

    2012-06-06 10:48:11
    tcp\udp高级编程:TCP和UDP协议的VC++代码实现,聊天室工具。
  • //UDP client //client send string to server #include #include #pragma comment(lib,"ws2_32.lib") #define BUFLEN 1024  void ClientUdp(void) {  SOCKET client;  SOCKADDR_IN

    //本帖抄自网上,经过调试成功,自己留着备用。与大家互相学习。

    //在vc2010上能编译通过。能互相通信。

    //server 和 client 都要"项目属性"--->"配置属性"----> "链接"----> "输入" --->"附加依赖项"中添加"ws2_32.lib"

    //UDP client  

    //client send string to server  
    #include <stdio.h>  
    #include <winsock2.h>
    #pragma comment(lib,"ws2_32.lib")   //必须加载一个库
    #define BUFLEN 1024 

    void ClientUdp(void)

    {

    SOCKET client;  //SOCKET 是大写的

    SOCKADDR_IN addr;  //跟linux的不同是,全部变量都得在前面这里先定义了,后面再使用,否则出错。
    char buf[BUFLEN];  
    WSADATA wsa;

    int error;

    eror=WSAStartup(MAKEWORD(1,1),&wsa); //initial Ws2_32.dll by a process  //加载库,UDP的首要步骤 

    //---------------------------------------------------------------------------------------------------------------------------

    if(error!=0)//这部分非必须
    {
    printf("WSAStartup error=%d\n",error);
    }
     if(LOBYTE(wsa.wVersion)!=1 || HIBYTE(wsa.wVersion)!=1)
    {
    printf("版本出错\n");
    printf("wVersion=%dwsa.wVersion=%d",wsa.wVersion,wsa.wVersion);

    }

    //---------------------------------------------------------------------------------------------------------------------------

    if((client = socket(AF_INET,SOCK_DGRAM,0)) <= 0)  //返回一个套接字

    {  
            printf("Create socket fail!\n");  
            return -1;  
    }  

    //---------------------------------------------------------------------------------------------------------------------------

    memset(&addr, 0, sizeof(addr)); 

    addr.sin_family = AF_INET;  

    addr.sin_addr.s_addr = inet_addr("192.168.56.1");//inet_addr("127.0.0.1");   //这里填写要发送到服务端的ip.一般没问题,127是本地回环,没试试成功。
    addr.sin_port = htons(5555);  
    bind(client,(struct sockaddr *)&addr,sizeof(addr));  
          
    while(1)

    printf("pls input:");
    scanf("%s", buf);
    sendto(client, buf,strlen(buf)+1, 0, (SOCKADDR *)&addr, sizeof(addr));
    memset(buf,0,sizeof(buf));
    }  
      
    closesocket(client);
    WSACleanup();   //clean up Ws2_32.dll  
    }


    int main(void)  
    {  
    ClientUdp();
    return 0;  

    }  

    //------------------------------------------------------------------------------------------------------------------------

    //UDP server  
    //listen port 9102  
    //receive string and display it 
    #include <stdio.h>  
    #include <winsock2.h>  
    #pragma comment(lib,"ws2_32.lib")   
    #define BUFLEN 1024
     
    void ServerUdp(void)
    {
    SOCKET server;  

    SOCKADDR_IN addr;  
    char buf[BUFLEN];  
    int len;  
    WSADATA wsa;//全部在这里定义了,后面才使用。在下面定义的话会出错。
    int error;

    error=WSAStartup(MAKEWORD(1,1),&wsa); //initial Ws2_32.dll by a process  

    //---------------------------------------------------------------------------------------------------------------------------- 
     if(error!=0)//非必须
    {
    printf("WSAStartup error=%d\n",error);
    }
     if(LOBYTE(wsa.wVersion)!=1 || HIBYTE(wsa.wVersion)!=1)
    {
    printf("版本出错\n");
    printf("wVersion=%dwsa.wVersion=%d",wsa.wVersion,wsa.wVersion);
    }

    //----------------------------------------------------------------------------------------------------------------------------

    if((server = socket(AF_INET,SOCK_DGRAM,0)) <= 0)  //创建SOCK

    {  
            printf("Create socket fail!\n");  
            return -1;  
    }
    //---------------------------------------------------------------------------------------------------------------------------
    memset(&addr, 0, sizeof(addr));  
    addr.sin_family = AF_INET;  
    addr.sin_port = htons(5555);  
    addr.sin_addr.s_addr = inet_addr("192.168.56.1"); //htonl(INADDR_ANY); //不能通信一定是这里出问题。如果没绑定成功它会自动退出
    htonl(INADDR_ANY); //因此这边先要能绑定具体ip.客户端就直接填写这个发送的ip地址
    if(bind(server,(SOCKADDR *)&addr,sizeof(SOCKADDR))!=0)  
    {  
    printf("Bind fail!\n");  
    return -1;  

      
    len = sizeof(addr);  //不能像客户端一样直接“sizeof(addr)”,这里是&指针
    printf("start listen...\n");  
    while(1)
    {

      recvfrom(server, buf, BUFLEN, 0,(struct sockaddr*)&addr, &len); 
    printf("recvfrom client:%s\n",buf);
    memset(buf,0,sizeof(buf));
    }  
         
    closesocket(server);
    WSACleanup();                     //关闭  
    }

    int main(void)  
    {  
    ServerUdp();
    return 0;  
    }  



    展开全文
  • NULL 博文链接:https://wintys.iteye.com/blog/418282
  • 服务器端(接收端)程序: 1、创建套接字(socket)。 2、将套接字绑定到一个本地地址和端口上(bind)。 3、等待接收数据(recvfrom)。 4、关闭套接字。 .../* *UDP Server *2008-12-0

    服务器端(接收端)程序:
    1、创建套接字(socket)。
    2、将套接字绑定到一个本地地址和端口上(bind)。
    3、等待接收数据(recvfrom)。
    4、关闭套接字。


    客户端(发送端)程序:
    1、创建套接字(socket)。
    2、向服务器发送数据(sendto)。
    3、关闭套接字。


    服务器端代码:

    1. /*
    2.  *UDP Server 
    3.  *2008-12-04
    4.  */
    5. #include <winsock2.h>
    6. #include <stdio.h>

    7. void main(){
    8.     //初始化
    9.     WORD wVersionRequired;
    10.     WSAData wsaData;
    11.     wVersionRequired = MAKEWORD(2,2);
    12.     
    13.     WSAStartup(wVersionRequired,&wsaData);

    14.     //创建socket
    15.     SOCKET server;
    16.     server = socket(AF_INET,SOCK_DGRAM,0);

    17.     //绑定
    18.     SOCKADDR_IN addr;
    19.     addr.sin_family = AF_INET;
    20.     addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
    21.     addr.sin_port = htons(6006);
    22.     bind(server,(SOCKADDR*)&addr,sizeof(SOCKADDR));
    23.     
    24.     //接收
    25.     char recvBuf[100];
    26.     int recvLen;
    27.     SOCKADDR_IN clientAddr;
    28.     int fromLen;
    29.     recvLen = 100;
    30.     fromLen = sizeof(SOCKADDR);
    31.     recvfrom(server,recvBuf,recvLen,0,(SOCKADDR*)&clientAddr,&fromLen);
    32.     printf("Receive:%s",recvBuf);

    33.     //发送
    34.     char * sendBuf;
    35.     int sendLen;
    36.     sendBuf = "Message from Server!/n";
    37.     sendLen = strlen(sendBuf) + 1;
    38.     sendto(server,sendBuf,sendLen,0,(SOCKADDR*)&clientAddr,fromLen);

    39.     //关闭
    40.     closesocket(server);
    41.     WSACleanup();
    42. }

    客户端程序:

    1. /*
    2.  *UDP Client 
    3.  *2008-12-04
    4.  */
    5. #include <winsock2.h>
    6. #include <stdio.h>

    7. void main(){
    8.     WORD wVersionRequired;
    9.     WSAData wsaData;
    10.     wVersionRequired = MAKEWORD(2,2);
    11.     WSAStartup(wVersionRequired,&wsaData);

    12.     SOCKET client;
    13.     client = socket(AF_INET,SOCK_DGRAM,0);

    14.     char sendBuf[100];
    15.     int len;
    16.     SOCKADDR_IN addr;
    17.     int toLen;
    18.     char *temp = "Message from Client!/n";
    19.     sprintf(sendBuf,"%s",temp);
    20.     len = strlen(sendBuf)+1;
    21.     addr.sin_family = AF_INET;
    22.     addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    23.     addr.sin_port = htons(6006);
    24.     toLen = sizeof(SOCKADDR);
    25.     sendto(client,sendBuf,len,0,(SOCKADDR*)&addr,toLen);

    26.     char recvBuf[100];
    27.     int recvLen;
    28.     SOCKADDR_IN addr_in;
    29.     int fromLen;
    30.     recvLen = 100;
    31.     fromLen = sizeof(SOCKADDR);
    32.     recvfrom(client,recvBuf,recvLen,0,(SOCKADDR*)&addr_in,&fromLen);
    33.     printf("Receive:%s",recvBuf);

    34.     closesocket(client);
    35.     WSACleanup();
    36. }
    展开全文
  • VC编程实现使用CAsyncSocket进行无连接(UDP)通信
  • VC++ 6.0socket 编程UDP部分,服务器端指定端口8080,我也想把客户端发送数据的端口固定下来,也加了bind函数。 但是,服务器端收到数据,吧addrClient中IP 和 Port取出之后,Port并不是服务器端制定的端口8080。 ...
  • 小的聊天程序(可以接收也可以发送),BUG是对某些IP(只是某些,如192.168.0.2,像192.168.0.5就不会出现此问题,等等)发送信息,然后再对本机IP发送信息(测试有在发送,但是本机接收不了),就接收不到了(别的...
  • VC中CSOCKET类的编程 UDP

    千次阅读 2011-10-30 11:04:29
    UDP协议 发送数据时:  CSocket m_SendSock; //定义一个网络套接字  m_SendSock.Close();  char szHostName[128] = {0};  gethostname(szHostName, 128);  hostent *pHostent = gethostbyname(szHostName...

    UDP协议 发送数据时:   

    CSocket  m_SendSock;  //定义一个网络套接字

       m_SendSock.Close();
     char szHostName[128] = {0};
     gethostname(szHostName, 128);
     hostent *pHostent = gethostbyname(szHostName);
     char *pszIP = inet_ntoa(*(in_addr*)&pHostent->h_addr_list[2]);
     CString szPort;  //获取本地端口
     m_Port.GetWindowText(szPort);
     int nPort = atoi(szPort);
     if (!m_SendSock.Create(nPort, SOCK_DGRAM, pszIP))
     {
      MessageBox("套接字创建失败");
     }
     else
     {
      BOOL bCmdOpt = TRUE;
      m_SendSock.SetSockOpt(SO_BROADCAST, (void*)&bCmdOpt, 1); //设置套接字为广播套接字
     
      CString szSendInfo;  //发送信息
      CString szSendPort;  //发送端口
      m_SendContent.GetWindowText(szSendInfo);    //获取发送信息
      m_SendPort.GetWindowText(szSendPort);
      int nSendPort = atoi(szSendPort);
      SOCKADDR_IN addr;
      addr.sin_family = AF_INET;
      addr.sin_addr.S_un.S_addr= INADDR_BROADCAST;
      addr.sin_port = htons(nSendPort);
      m_SendSock.SendTo(szSendInfo.GetBuffer(0), szSendInfo.GetLength(),
          (SOCKADDR*)&addr, sizeof(addr));
     }

    UDP协议 接收数据时:  

    //获取IP地址
     char szHostName[128];
     gethostname(szHostName, 128);
     hostent *pHostent = gethostbyname(szHostName);
     char  *pszIP = inet_ntoa(*(in_addr*)&pHostent->h_addr_list[2]);

     m_LocalSock.SetDialog(this);

     m_LocalSock.Create(8021, SOCK_DGRAM, pszIP);

     BOOL bCmdOpt = TRUE;
     m_LocalSock.SetSockOpt(SO_BROADCAST, (void*)&bCmdOpt, 1);
     int nRecvNum = socket.ReceiveFrom(pBuffer, 1024, szIP, nPort);
     if (nRecvNum != -1)
     {
      m_RecvInfo.SetWindowText(pBuffer);
     }

     

    展开全文
  • 1.SOCKET类型 SOCKET是socket套接字类型,在WINSOCK2.H中有如下定义: typedef unsigned int u_int; typedef u_int SOCKET; 可知套接字实际上就是一个无符号整型,它将被Socket环境管理和使用。...

    1.SOCKET类型
    SOCKETsocket套接字类型,在WINSOCK2.H中有如下定义:
    typedef unsigned int    u_int;
    typedef u_int           SOCKET;
    可知套接字实际上就是一个无符号整型,它将被Socket环境管理和使用。套接字将被创建、设置、用来发送和接收数据,最后会被关闭。

    2.WORD类型、MAKEWORDLOBYTEHIBYTE
    WORD类型是一个16位的无符号整型,在WTYPES.H中被定义为:
    typedef unsigned short WORD;
    其目的是提供两个字节的存储,在Socket中这两个字节可以表示主版本号和副版本号。使用MAKEWORD宏可以给一个WORD类型赋值。例如要表示主版本号2,副版本号0,可以使用以下代码:
    WORD wVersionRequested;  wVersionRequested = MAKEWORD( 2, 0 ); 
    注意低位内存存储主版本号2,高位内存存储副版本号0,其值为0x0002。使用宏LOBYTE可以读取WORD的低位字节,HIBYTE可以读取高位字节。

    3. WSADATA类型和LPWSADATA类型
    WSADATA类型是一个结构,描述了Socket库的一些相关信息,其结构定义如下:
    typedef struct WSAData {
            WORD                    wVersion;
            WORD                    wHighVersion;
            char                    szDescription[WSADESCRIPTION_LEN+1];
            char                    szSystemStatus[WSASYS_STATUS_LEN+1];
            unsigned short          iMaxSockets;
            unsigned short          iMaxUdpDg;
            char FAR *              lpVendorInfo;
    } WSADATA;
    typedef WSADATA FAR *LPWSADATA;
    值得注意的就是wVersion字段,存储了Socket的版本类型。LPWSADATAWSADATA的指针类型。它们通过Socket的初始化函数WSAStartup读取出来。

    4. WSAStartup函数
    WSAStartup函数被用来初始化Socket环境,它的定义如下:
    int PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData);
    其返回值为整型,调用方式为PASCAL(即标准类型,PASCAL等于__stdcall),参数有两个,第一个参数为WORD类型,指明了Socket的版本号,第二个参数为WSADATA类型的指针。
    若返回值为0,则初始化成功,若不为0则失败。

    5.WSACleanup函数
    这是Socket环境的退出函数。返回值为0表示成功,SOCKET_ERROR表示失败。

    6.socket函数
    socket的创建函数,其定义为:
    SOCKET PASCAL FAR socket (int af, int type, int protocol);
    第一个参数为int af,代表网络地址族,目前只有一种取值是有效的,即AF_INET,代表internet地址族;
    第二个参数为int type,代表网络协议类型,SOCK_DGRAM代表UDP协议,SOCK_STREAM代表TCP协议;
    第三个参数为int protocol,指定网络地址族的特殊协议,目前无用,赋值0即可。
    返回值为SOCKET,若返回INVALID_SOCKET则失败。

    7.setsockopt函数(一般是没有用的)
    这个函数用来设置Socket的属性,若不能正确设置socket属性,则数据的发送和接收会失败。定义如下:
    int PASCAL FAR setsockopt (SOCKET s, int level, int optname, const char FAR * optval, int optlen);                          
    其返回值为int类型,0代表成功,SOCKET_ERROR代表有错误发生。
    第一个参数SOCKET s,代表要设置的套接字;
    第二个参数int level,代表要设置的属性所处的层次,层次包含以下取值:SOL_SOCKET代表套接字层次;IPPROTO_TCP代表TCP协议层次,IPPROTO_IP代表IP协议层次(后面两个我都没有用过);
    第三个参数int optname,代表设置参数的名称,SO_BROADCAST代表允许发送广播数据的属性,其它属性可参考MSDN
    第四个参数const char FAR * optval,代表指向存储参数数值的指针,注意这里可能要使用reinterpret_cast类型转换;
    第五个参数int optlen,代表存储参数数值变量的长度。

    8.sockaddr_inin_addr类型,inet_addrinet_ntoa函数
    sockaddr_in定义了socket发送和接收数据包的地址,定义:
    struct sockaddr_in {
            short   sin_family;
            u_short sin_port;
            struct in_addr sin_addr;
            char    sin_zero[8];
    };
    其中in_addr的定义如下:
    struct in_addr {
            union {
                    struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
                    struct { u_short s_w1,s_w2; } S_un_w;
                    u_long S_addr;
            } S_un;
    首先阐述in_addr的含义,很显然它是一个存储ip地址的联合体(忘记union含义的请看c++书),有三种表达方式:
    第一种用四个字节来表示IP地址的四个数字;
    第二种用两个双字节来表示IP地址;
    第三种用一个长整型来表示IP地址。
    in_addr赋值的一种最简单方法是使用inet_addr函数,它可以把一个代表IP地址的字符串赋值转换为in_addr类型,如
    addrto.sin_addr.s_addr=inet_addr("192.168.0.2");
    其反函数是inet_ntoa,可以把一个in_addr类型转换为一个字符串。
    sockaddr_in的含义比in_addr的含义要广泛,其各个字段的含义和取值如下:
    第一个字段short   sin_family,代表网络地址族,如前所述,只能取值AF_INET
    第二个字段u_short sin_port,代表IP地址端口,由程序员指定;
    第三个字段struct in_addr sin_addr,代表IP地址;
    第四个字段char    sin_zero[8],是为了保证sockaddr_inSOCKADDR类型的长度相等而填充进来的字段。

    9.sockaddr类型
    sockaddr类型是用来表示Socket地址的类型,同上面的sockaddr_in类型相比,sockaddr的适用范围更广,因为sockaddr_in只适用于TCP/IP地址。Sockaddr的定义如下:
    struct sockaddr {
     u_short    sa_family;
     char       sa_data[14];
    };   
    可知sockaddr16个字节,而sockaddr_in也有16个字节,所以sockaddr_in是可以强制类型转换为sockaddr的。事实上也往往使用这种方法。

    10. Sleep函数
    线程挂起函数,表示线程挂起一段时间。Sleep(1000)表示挂起一秒。定义于WINBASE.H头文件中。WINBASE.H又被包含于WINDOWS.H中,然后WINDOWS.HWINSOCK2.H包含。

    11. sendtosend函数
    Socket中有两套发送和接收函数,一是sendtorecvfrom;二是sendrecv。前一套在函数参数中要指明地址(UDP协议);而后一套需要先将套接字和一个地址绑定,然后直接发送和接收,不需绑定地址。
    sendto的定义如下:
    int PASCAL FAR sendto (SOCKET s, const char FAR * buf, int len, int flags, const struct sockaddr FAR *to, int tolen);
    第一个参数就是套接字;
    第二个参数是要传送的数据指针;
    第三个参数是要传送的数据长度(字节数);
    第四个参数是传送方式的标识,如果不需要特殊要求则可以设置为0,其它值请参考MSDN
    第五个参数是目标地址,注意这里使用的是sockaddr的指针;
    第六个参数是地址的长度;
    返回值为整型,如果成功,则返回发送的字节数,失败则返回SOCKET_ERROR
    send函数有四个参数与sendto函数的前四个参数是一样的。

    12.recvfromrecv函数
    int WSAAPI recvfrom(IN SOCKET s,char FAR * buf,int len,int flags,sockaddr FAR * from,int  * fromlen );
    第一个参数就是套接字;
    第二个参数是要接收消息的char数组的指针;
    第三个参数是要接收的数据长度(字节数);
    第四个参数是接收方式的标识,如果不需要特殊要求则可以设置为0
    第五个参数是接收地址的结构指针,存放接收到对方的的地址信息;
    第六个参数是地址的长度的指针(&);
    返回值为整型,如果成功,则返回接收的字节数,失败则返回SOCKET_ERROR
    recv函数有四个参数与recvfrom函数的前四个参数是一样的。

    13. WSAGetLastError函数
    该函数用来在Socket相关API失败后读取错误码,根据这些错误码可以对照查出错误原因。

    14. closesocket
    关闭套接字,其参数为SOCKET类型。成功返回0,失败返回SOCKET_ERROR

    15.bind函数
    bind函数用来将一个套接字绑定到一个IP地址。一般只在服务方(即数据发送方)调用,很多函数会隐式的调用bind函数。

    16.listen函数
    从服务方监听客户方的连接。同一个套接字可以多次监听。

    17.connectaccept函数
    connect是客户方连接服务方的函数,而accept是服务方同意客户方连接的函数。这两个配套函数分别在各自的程序中被成功调用后就可以收发数据了。


    总结以上内容,写一个UDP发送程序的步骤如下:
    1. WSAStartup函数初始化Socket环境;
    2. socket函数创建一个套接字;
    3. setsockopt函数设置套接字的属性,例如设置为广播类型;很多时候该步骤可以省略;
    4.创建一个sockaddr_in,并指定其IP地址和端口号;
    5. sendto函数向指定地址发送数据,不需要绑定,即使绑定了,其地址也会被sendto中的参数覆盖;若使用send函数则会出错,因为send是面向连接的,而UDP是非连接的,只能使用sendto发送数据;
    6. closesocket函数关闭套接字;
    7.  WSACleanup函数关闭Socket环境。


    与之类似,一个UDP接收程序的步骤如下,注意接收方一定要bind套接字:
    1.WSAStartup函数初始化Socket环境;
    2.socket函数创建一个套接字;
    3.setsockopt函数设置套接字的属性,例如设置为广播类型;
    4.创建一个sockaddr_in,并指定其IP地址和端口号;
    5.bind函数将套接字与接收的地址绑定起来,然后调用recvfrom函数或者recv接收数据; 注意这里一定要绑定,因为接收报文的套接字必须在网络上有一个绑定的名称才能保证正确接收数据;
    6.closesocket函数关闭套接字;
    7.WSACleanup函数关闭Socket环境。

    TCPUDP最大的不同之处在于TCP是一个面向连接的协议,在进行数据收发之前TCP必须进行连接,并且在收发的时候必须保持该连接。

    发送方的步骤如下(省略了Socket环境的初始化、关闭等内容):
    1. socket函数创建一个套接字sock
    2. bindsock绑定到本地地址;
    3. listen侦听sock套接字;
    4. accept函数接收客户方的连接,返回客户方套接字clientSocket
    5. 在客户方套接字clientSocket上使用send发送数据;
    6. closesocket函数关闭套接字sockclientSocket

    而接收方的步骤如下:
    1. socket函数创建一个套接字sock
    2. 创建一个指向服务方的远程地址;
    3. connectsock连接到服务方,使用远程地址;
    4. 在套接字上使用recv接收数据;
    5. closesocket函数关闭套接字sock

     

    在这里套接字使用了最原始的套接字,并在很多地方直接使用了SDK函数,而尽量避免了MFC等代码框架,这是为了方便他人掌握技术的最基本内涵。

    其实在具体的编程中,当然是怎么方便怎么来,Socket和多线程以及界面等功能都有大量方便可用的代码库,复用这些代码库会比自己动手写方便很多。但是,掌握了基本原理再使用这些库,事半功倍 。当然要编好网络程序还要对多线程及其同步有所熟悉,并应用到实际编程,以上只是最基本的。现在大家可以自己动手编写简单的网络程序了(有时要添加库文件,如ws2_32.lib)。

    展开全文
  • 创建了一个基于socket的UDP传输程序,能够动态输入对方的IP地址和端口号进行数据传输,能够发送数据文件,能够对发送的次数进行计数
  • vc 网络编程(socket)TCP/UDP 介绍

    千次阅读 2013-04-12 12:39:42
    在网上找了很多的资料,现将这些资料整合起来,详细介绍一下VC下的socket编程,并提供一个服务器客户端具体的实例。希望对您有所帮助 一、原理部分  在网络编程中最常用的方案便是Client/Server (客户机/服务器)...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    last login:Tue ,Nov 18 10:00:55 on vc/1 上面显示的是登录星期、月、日、时间和使用的虚拟控制台。 4.应用技巧 Linux 是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这...
  • VC环境下UDP Socket编程示例

    千次阅读 2013-11-22 11:03:30
    原文地址:Socket编程示例">VC环境下UDP Socket编程示例作者:阿明  VC下的Socket编程要包含winsock2.h头文件,并在项目设置中加入链接库ws2_32.lib.下面是一个用UDP实现的echo程序示例。 服务器端代码: #...
  • 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有...
  • 传输层:TCP,UDP TCP:面向连接的可靠的传输协议,通信前建立三次握手,握手成功后才能通信,对数据准确性要求较高的场合使用,如从网上载的安装文件,不能缺少任何信息 UDP:是无连接的,不可靠的传输协议,不需要...
  • udp_vc_wzz.rar

    2020-04-23 23:22:31
    VC6++ UDP协议网络编程源代码 适合于初学者 个人编写 代码通过运行 (VC6++ UDP protocol network programming source code suitable for beginners who write code by running)
  • 这是一个简单的Socket程序例子,开发环境是vc6:新建工程 win32-控制台程序首先是TCPserver端:#include "stdafx.h"#include <stdio.h>#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")int main...
  • 传输层:TCP,UDP  TCP:面向连接的可靠的传输协议,通信前建立三次握手,握手成功后才能通信,对数据准确性要求较高的场合使用,如从网上载的安装文件,不能缺少任何信息  UDP:是无连接的,不可靠的传输...
  • 基于UDP的socket编程

    千次阅读 2007-07-04 16:45:00
    转贴自: http://jacky22098.bokee.com/2918869.html 关键词: VC UDP socket sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于UDP
  • socket编程UDP包转发程序源码

    热门讨论 2008-03-29 14:10:41
    这个一个极其简单的Socket编程的示例程序,用VC6.0编写。是我在工作中因需要测试一个端口接收到的视频流而编写的程序,包括UDP发送客户端,UDP转发服务器端,UDP接收显示服务器端(以字符形式将解出来的UDP包以字符...
  • VC MFC Socket编程.rar

    2019-07-10 17:25:36
    VC MFC Socket编程,这里面不至一个例子,最后做出了一个简单的MFC Socket 聊天室例子,来进一步演示MFC Socket编程的技术细节,对于VC 初学者是非常不错的参考范例。  CDialog::OnInitDialog();  CSocket sock...
  • VC网络编程经典实例30个

    热门讨论 2011-07-23 20:29:23
    vc 网络 tcp ip UDP 流式套接字 数据报套接字,各个实例均有,有C语言下的网络编程也有VC MFC编程
  • vc创建控制台程序窗口的应用程序 命名为 UDP服务器UDPSever.cpp #include&lt;winsock2.h&gt; #include&lt;stdio.h&gt; #include&lt;windows.h&gt; #pragma comment(lib,"WS2_32.lib&...
  • VC中创建UDP客户端程序 控制台 #include&lt;winsock2.h&gt; #include&lt;stdio.h&gt; #include&lt;windows.h&gt; #pragma comment(lib,"WS2_32.lib") int main() {  WSADATA...

空空如也

1 2 3 4 5 6
收藏数 108
精华内容 43
热门标签
关键字:

udp vc编程