基于UDP协议的”hello world“

来源:互联网 发布:sql server2000挂起 编辑:程序博客网 时间:2024/05/16 15:48

服务器端

#include "iostream"#include "winsock2.h"#pragma comment (lib, "ws2_32")using namespace std;int main(){    WSADATA wsaData;    WSAStartup(MAKEWORD(2, 2), &wsaData);  //初始化ws2_32.dll动态库连接    SOCKET s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);    sockaddr_in sockaddr;    sockaddr.sin_family = PF_INET;    sockaddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); //IP地址,将IP转换为unsigned long型数值    sockaddr.sin_port = htons(827); //端口号,本地字节顺序转换为网络字节顺序    bind(s, (SOCKADDR*)&sockaddr, sizeof(SOCKADDR));    sockaddr_in clientAddr;    int len = sizeof(sockaddr_in);    char buf[MAXBYTE] = {0};    recvfrom(s, buf, MAXBYTE, 0, (SOCKADDR *)&clientAddr, &len); //比recv多了后两个参数    printf("%s\n", buf);    sendto(s, "hello client\n", strlen("hello client\n")+sizeof(char), 0, (SOCKADDR *)&clientAddr, sizeof(SOCKADDR));    closesocket(s);    WSACleanup();  //释放ws2_32.dll    return 0;}

客户端

#include "stdio.h"#include "winsock2.h"#pragma comment (lib, "ws2_32")int main(){    WSADATA wsaData;    WSAStartup(MAKEWORD(2, 2), &wsaData);    SOCKET s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);    sockaddr_in sockAddr;  //对服务器端的描述    sockAddr.sin_family = PF_INET;    sockAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");    sockAddr.sin_port = htons(827);    sendto(s, "hello server\n", strlen("hello server\n")+sizeof(char), 0, (SOCKADDR *)&sockAddr, sizeof(SOCKADDR));    sockaddr_in clientAddr;    int len = sizeof(sockaddr_in);    char buf[MAXBYTE] = {0};    recvfrom(s, buf, MAXBYTE, 0, (SOCKADDR *)&clientAddr, &len);    printf("%s\n", buf);    closesocket(s);    WSACleanup();    return 0;}

服务器:
这里写图片描述
客户端:
这里写图片描述

0 0
原创粉丝点击