UDP 客户端与服务器端实例

来源:互联网 发布:淘宝基础版和智能板 编辑:程序博客网 时间:2024/05/20 09:27

服务器端:

#define _WINSOCK_DEPRECATED_NO_WARNINGS//#include <iostream>#include <WinSock2.h>using namespace std;//凡是API,不是只有头文件就能搞定的,必须关联动态库#pragma comment(lib,"ws2_32.lib")//WSANOTINITIALISEDint main(){    //WSAStartup(MAKEWORD(2, 2), &wsaData);    WSAData wd;    WSAStartup(0x0305, &wd);                            //初始化网络程序    SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);                   //创建socket    if (INVALID_SOCKET == sock)    {        cout << "socket创建失败:" << WSAGetLastError() << endl;        return 0;    }    sockaddr_in sa = { AF_INET ,9000};//htons(9000)    int n = bind(sock, (sockaddr*)&sa, sizeof(sa));                 //绑定socket    if (n == SOCKET_ERROR)    {        cout <<"绑定失败:" << WSAGetLastError() << endl;        return 0;    }    sockaddr_in sa1 = { AF_INET,htons(9001 )};    sa1.sin_addr.S_un.S_addr = inet_addr("192.168.0.198");          //连接IP    char s[200];    while (s[0] != '#')    {        cin >> s;        sendto(sock, s, strlen(s), 0,(sockaddr*)&sa1,sizeof(sa1));  //发送数据      }    return 0;}

服务器端:

#define _WINSOCK_DEPRECATED_NO_WARNINGS//#include <iostream>#include <WinSock2.h>using namespace std;#pragma comment(lib,"ws2_32.lib")int main(){    //WSAStartup(MAKEWORD(2, 2), &wsaData);    WSAData wd;    WSAStartup(0x0305, &wd);    SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);       //创建SOCKET    if (INVALID_SOCKET == sock)    {        cout << "socket创建失败:" << WSAGetLastError() << endl;        return 0;    }    sockaddr_in sa = { AF_INET ,htons(9001) };//htons(9000) //绑定SOCKET    int n = bind(sock, (sockaddr*)&sa, sizeof(sa));    if (n == SOCKET_ERROR)    {        cout << "绑定失败:" << WSAGetLastError() << endl;        return 0;    }    char s[2000];    while (true)    {        int n = recv(sock, s, sizeof(s), 0);            //接收数据        if (n > 0)        {            s[n] = 0;            cout << s << endl;        }    }    return 0;}