要重新回来了

很久没有回来过这里了,这个暑假还有大概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\n",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\n",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\n",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 (); }

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

 

 

posted @ 2013-08-12 23:45  尽子轨  阅读(294)  评论(0编辑  收藏  举报