socket网络编程

来源:互联网 发布:模糊k均值聚类算法 编辑:程序博客网 时间:2024/05/17 05:14
 首先我先学下基于tcp/ip协议的socket程序。。。

   要实现通信,首先必须先建立一台服务器,步骤如下:

  1.用WSASTARTUP启动socket库

  2.建立一个socket

  3.用bind函数把本地地址和端口绑定起来

  4.用listen函数使socket能够监听来自客户的请求

  5.用accept函数来接受客户发来的请求,同时可以得到客户的ip和端口信息,方便后面的通信

  6.接下来就可以用send和recv函数来和客户通信。。。。

 

  接下来是客户机程序的编写,这个相对来说比较简单。。。

   1.也是建立一个socket

   2.不用进行绑定和监听操作,直接和服务器进行连接,用函数connect实现

  3.接下来就可以用send和recv和服务器之间实现通信了

 

  以前就是一个简单的网络编程,很容易实现吧。。。下面是这个程序的源代码。。。

   服务器程序:

#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  fuwuqi=socket(AF_INET,SOCK_STREAM,0); sockaddr_in  a; a.sin_addr.S_un.S_addr=htonl(INADDR_ANY); a.sin_family=AF_INET; a.sin_port=htons(6000); bind(fuwuqi,(sockaddr*)&a,sizeof(sockaddr)); listen(fuwuqi,2);    sockaddr_in  b; int  n=sizeof(sockaddr); while(1) {        SOCKET kefu=accept(fuwuqi,(sockaddr*)&b,&n);        send(kefu,"hello",strlen("hello")+1,0);  char jieshou[100];  recv(kefu,jieshou,100,0);  printf("%s\n",jieshou);  closesocket(kefu); }}


 

 

客户机:

#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 kefu=socket(AF_INET,SOCK_STREAM,0); sockaddr_in  a; a.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); a.sin_family=AF_INET; a.sin_port=htons(6000); connect(kefu,(sockaddr*)&a,sizeof(sockaddr)); char  jieshou[100]; recv(kefu,jieshou,100,0); printf("%s",jieshou); send(kefu,"this is shizhan",strlen("this is shizhan")+1,0); closesocket(kefu); WSACleanup();}


 

 

原创粉丝点击