windows和linux中UDP编程

来源:互联网 发布:下载苹果软件 编辑:程序博客网 时间:2024/06/06 05:23

//servser.cpp

#include <iostream>#include <windows.h>#include <stdio.h>#include <string.h>#define IP "127.0.0.1"#define PORT 8888#pragma comment(lib,"ws2_32.lib")using namespace std;char* GetTime();int main(){    WSADATA wsaData;    WORD Ret;    if ((Ret = WSAStartup(MAKEWORD(2, 2), &wsaData) != 0))    {        cout << "WSAStartup() Error Whit:" << Ret << endl;        WSACleanup();        return -1;    }//统一版本类型。    SOCKET sockSer, sockCli;    sockSer = socket(AF_INET,SOCK_DGRAM,0);    SOCKADDR_IN addrSer, addrCli;    memset(&addrSer,0,sizeof(addrSer));    memset(&addrCli,0,sizeof(addrCli));    addrSer.sin_family = AF_INET;    addrSer.sin_port = htons(PORT);    addrSer.sin_addr.S_un.S_addr = inet_addr(IP);    int len = sizeof(SOCKADDR);    bind(sockSer,(SOCKADDR*)&addrSer,len);    char serbuff[255];    //不需要监听连接。    while (1)    {        recvfrom(sockSer,serbuff,sizeof(serbuff),0,(SOCKADDR*)&addrCli,&len);        cout << serbuff << endl;        sendto(sockSer, GetTime(), 30, 0, (SOCKADDR*)&addrCli, len);    }    WSACleanup();    closesocket(sockSer);    closesocket(sockCli);    return 0;}char* GetTime(){    char buff[255];    SYSTEMTIME sys;    GetLocalTime(&sys);//初始化本地时间。    sprintf(buff,"%d:%d:%d:%d:%d:%d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond);    return buff;}
#include <iostream>#include <windows.h>#define PORT 8888#define IP "127.0.0.1"using namespace std;#pragma comment(lib,"ws2_32.lib")int main(){    DWORD Ret;    WSAData wsaData;    if ((Ret = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0)    {        cout <<"WSAStartup() Error Wiht : "<< Ret << endl;        WSACleanup();        return -1;    }    SOCKET sockCli = socket(AF_INET,SOCK_DGRAM,0);    SOCKADDR_IN addrSer;    addrSer.sin_family = AF_INET;    addrSer.sin_port = htons(PORT);    addrSer.sin_addr.S_un.S_addr = inet_addr(IP);    int len = sizeof(addrSer);    const char timebuff[] = "times";    char serbuff[255];    connect(sockCli,(SOCKADDR*)&addrSer,len);    while (1)    {        sendto(sockCli,timebuff,strlen(timebuff)+1,0,(SOCKADDR*)&addrSer,len);        recvfrom(sockCli,serbuff,sizeof(serbuff),0,(SOCKADDR*)&addrSer,&len);        cout <<timebuff<<serbuff << endl;        Sleep(2000);    }    return 0;}

//linux:
//ser.cpp

#include <iostream>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>#include <string.h>#define PORT 8888#define IP "127.0.0.1"using namespace std;int main(){    int sockSer = socket(AF_INET,SOCK_DGRAM,0);    sockaddr_in addrSer,addrCli;    addrSer.sin_family = AF_INET;    addrSer.sin_port = htons(PORT);    addrSer.sin_addr.s_addr = inet_addr(IP);    socklen_t len=sizeof(sockaddr);    bind(sockSer,(sockaddr*)&addrSer,len);    char serbuff[255]="!Hello !I am server!";    char clibuff[255];    while(1)    {       recvfrom(sockSer,clibuff,sizeof(clibuff),0,(sockaddr*)&addrSer,&len);       cout<<"CLient Say:"<<clibuff<<endl;       sendto(sockSer,serbuff,strlen(serbuff)+1,0,(sockaddr*)&addrSer,len);    }    return 0;}

//cli.cpp

#include <iostream>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <stdlib.h>#include <netinet/in.h>#include <arpa/inet.h>#define PORT 8888#define IP "127.0.0.1"using namespace std;int main(){    int sockCli = socket(AF_INET,SOCK_DGRAM,0);    sockaddr_in addrSer;    addrSer.sin_family = AF_INET;    addrSer.sin_port = htons(PORT);    addrSer.sin_addr.s_addr = inet_addr(IP);    socklen_t len = sizeof(sockaddr);    char clibuff[]="hello! I am client!";    char serbuff[255];    while(1)    {      sendto(sockCli,clibuff,strlen(clibuff)+1,0,(sockaddr*)&addrSer,len);      recvfrom(sockCli,serbuff,sizeof(serbuff),0,(sockaddr*)&addrSer,&len);    cout<<"Server Say:>"<<serbuff<<endl;    sleep(2);    }    return 0;}
1 0
原创粉丝点击