zoukankan      html  css  js  c++  java
  • 要重新回来了

    很久没有回来过这里了,这个暑假还有大概20天就要结束了,我现在在宿舍,我提前了二十天回学校,前天晚上21:00多回到宿舍的,宿舍没有电,只有我一个人,幸好隔壁宿舍tp也来了,不然不敢想象对于我这样一个胆小的人来说要怎么过。

    今天呆在宿舍基本上算了看了一天的书敲了一天的代码,其实也没敲多少,主要是刚刚接触网络编程,对于socket那部分看了很久也看得不太懂,写那个TCP/IP和UDP的时候都不知道怎么下手,照着书上敲了一遍的代码终于算是敲完了,可是运行起来的时候DOS窗口下全是烫烫烫烫,无语死了。今天在宿舍坐了一天屁股有点吃不消的样子。现在学校人不是很多,好安静,不过就是热,非常的热,有点受不了。好了下面是我们今天写的代码。

    TCP/IP服务器

    *#include<Winsock2.h>

    #include<stdio.h>

    void main() {

    //创建套接字 WORD wVerstoonRequested;

    WSADATA wsaData;   

      int err;

    wVerstoonRequested =MAKEWORD (1,1);   //保存请求得到的版本号

    err=WSAStartup (wVerstoonRequested ,&wsaData );    //调用WSAStartup函数加载套接字库,如果为0则退出

    if(err!=0) { return ; }

    //判断得到的版本号低字节和高字节是不是都等于1

    if(LOBYTE(wsaData .wVersion) !=1 || HIBYTE (wsaData .wVersion )!=1)

    {

    WSACleanup (); return ;

    }

    //创建用于监听的套接字

    SOCKET sockSrv=socket(AF_INET ,SOCK_STREAM ,0);

    SOCKADDR_IN addrSrv; addrSrv .sin_addr.S_un .S_addr =htonl(INADDR_ANY ); addrSrv .sin_family =AF_INET; addrSrv .sin_port =htons(6000);   //端口

    //绑定套接字

    bind(sockSrv ,(SOCKADDR *)&addrSrv ,sizeof (SOCKADDR));

    //将套接字设为监听模式,准备接受客户请求

    listen(sockSrv ,5);

    SOCKADDR_IN addrClient; int len=sizeof(SOCKADDR);

    while(1) {

    //等待客户请求到来

    SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient ,&len); char sendBuff[100];

    sprintf (sendBuff ,"Welcome %s tomorrow is qixi",inet_ntoa (addrClient .sin_addr ));

    //发送数据

    send(sockConn ,sendBuff ,strlen (sendBuff )+1,0); char recvBuf[100];

    //接收数据

    recv(sockConn ,recvBuf,100,0);

    //打印接收的数据

    printf("%s ",recvBuf ); //关闭套接字 closesocket (sockConn );

    }

    }*/

    TCP/IP客户端

    /*#include<Winsock2.h>

    #include<stdio.h>

    void main() {

    //创建套接字 WORD wVerstoonRequested;

    WSADATA wsaData;    

    int err;

    wVerstoonRequested =MAKEWORD (1,1);      //保存请求得到的版本号 err=WSAStartup (wVerstoonRequested ,&wsaData );    //调用WSAStartup函数加载套接字库,如果为0则退出 if(err!=0) {

    return ;

    }

    //判断得到的版本号低字节和高字节是不是都等于1

    if(LOBYTE(wsaData .wVersion) !=1 || HIBYTE (wsaData .wVersion )!=1) {

    WSACleanup ();

    return ; }

    //创建套接字

    SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

    SOCKADDR_IN addrSrv;

    addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

    addrSrv.sin_family =AF_INET;

    addrSrv.sin_port=htons(6000);

    //向服务器发出链接请求

    connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

    //接收数据

    char recvBuf[100]; recv(sockClient,recvBuf,100,0); printf("%s ",recvBuf);

    //发送数据

    send(sockClient ,"who is my love",strlen("who is my love")+1,0);

    //关闭套接字

    closesocket (sockClient ); //WSACleanup ();

    }*/

    UDP 服务器

    #include<Winsock2.h>

    #include<stdio.h>

    void main() {  

    //加载套字库

     WORD wVersionRequested;  

    WSADATA wsaData;  

    int err;  

    wVersionRequested =MAKEWORD (1,1);

     err=WSAStartup(wVersionRequested ,&wsaData );

     if(err!=0)  {   return ;  }  

    if(LOBYTE (wsaData .wVersion )!=1 ||HIBYTE (wsaData .wVersion )!=1)  {  

     WSACleanup ();  

     return ;  }

     //创建套接字

     SOCKET sockSrv=socket(AF_INET ,SOCK_DGRAM ,0);  

    SOCKADDR_IN addrSrv;

     addrSrv .sin_addr .S_un.S_addr=htonl(INADDR_ANY );

     addrSrv .sin_family =AF_INET ;

     addrSrv .sin_port=htons(6000);  

    //绑定套接字  

    bind(sockSrv ,(SOCKADDR *)&addrSrv ,sizeof (SOCKADDR));

     //等待并接收数据

     SOCKADDR_IN addrClient;    //地址结构变量

     int len=sizeof (SOCKADDR);

     char recvBuf[100];

     recvfrom (sockSrv ,recvBuf ,100,0,(SOCKADDR *)&addrClient,&len );

     printf ("%s ",recvBuf );

     //关闭套接字

     closesocket (sockSrv  );  

    WSACleanup (); }

    客户端

    #include<stdio.h>

    void main() {

     //加载套字库  

    WORD wVersioRequested;

     WSADATA  wsaData;

     wVersioRequested =MAKEWORD (1,1);

     int err;  err=WSAStartup (wVersioRequested ,&wsaData );

     if(err!=0)  {   return ;  }

     if(LOBYTE (wsaData .wVersion )!=1 || HIBYTE (wsaData .wVersion )!=1)  {   

    WSACleanup ();  

     return ;  }  

    //创建套接字  SOCKET  sockClient=socket(AF_INET ,SOCK_DGRAM ,0);

     SOCKADDR_IN  addSrv;

     addSrv .sin_addr .S_un .S_addr =inet_addr ("182.91.232.65" );

     addSrv .sin_family =AF_INET;  addSrv .sin_port =htons (6000);

     //发送数据  

    sendto(sockClient ,"Hello",strlen("Hello")+1,0,(SOCKADDR *)&addSrv ,sizeof (SOCKADDR));  

     //关闭套接字

     closesocket (sockClient );

     WSACleanup (); }

    今天就这样吧,困了怎么睡觉了。明天七夕,世界晚安。

  • 相关阅读:
    Java实时读取日志文件
    Trie树的应用:查询IP地址的ISP
    vue.extend,mixins和vue.component的区别
    前端性能优化10个方面
    vue组件和插件是实现
    vue指令用法
    promise retry实现
    linux管道与重定向
    linux文件颜色与类型
    linux文件权限说明
  • 原文地址:https://www.cnblogs.com/newworldcom/p/3254267.html
Copyright © 2011-2022 走看看