UDP通讯(客户端)

来源:互联网 发布:房产中介辅助软件 编辑:程序博客网 时间:2024/05/21 17:19

根据网上的资源修改的:

#include <stdio.h>#include <string.h>#include <winsock2.h>#pragma comment(lib, "ws2_32.lib")int Client(void);int main(int argc, char *argv[]){    return Client();}int Client(void){    char buffer[1024] = "";    WSADATA wsaData;    SOCKET socket1;    struct sockaddr_in local;    struct sockaddr_in server;    int serverlen = sizeof (struct sockaddr_in);    if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR)    {        printf("Error at WSAStartup().\n");        return 255;    }    local.sin_family = AF_INET;    local.sin_port = htons(8002);//监听端口    //local.sin_addr.S_un.S_addr = INADDR_ANY;//本机    local.sin_addr.S_un.S_addr = inet_addr("192.168.7.104");//本机    server.sin_family = AF_INET;    server.sin_port = htons(8001);//server的监听端口    server.sin_addr.S_un.S_addr = inet_addr("192.168.7.104");//server的地址    socket1 = socket(AF_INET, SOCK_DGRAM, 0);    bind(socket1, (struct sockaddr *)&local, sizeof (struct sockaddr_in));    while (1)    {        printf("Input message:\n");        scanf("%s", buffer);        if (strcmp(buffer, "bye") == 0)        {            break;        }        if (sendto(socket1, buffer, strlen(buffer), 0, (struct sockaddr *)&server, serverlen) != SOCKET_ERROR)        {            memset(buffer, 0, sizeof (buffer));            if (recvfrom(socket1, buffer, sizeof (buffer), 0, (struct sockaddr *)&server, &serverlen) != SOCKET_ERROR)            {                printf("Received from server(%s:%i): %s\n", inet_ntoa(server.sin_addr), ntohs(server.sin_port), buffer);            }        }    }    closesocket(socket1);    return 0;}


原创粉丝点击