分享

java开发的socket与C开发的socket通信问题 Java / J2SE / 基础...

 鬼迷心窍 2008-02-19
没有什么复杂的,我用Java做服务端,起一个监听。然后客户端用C写一个,连接指定的端口,一发一收,没什么特别的地方。给你一段我编着玩的代码:  
   
  Java  
  ----------------------------------------  
  package   pkserver;  
   
  import   java.net.*;  
  import   java.io.*;  
  import   java.util.*;  
  /**  
    *   <p>Title:   </p>  
    *   <p>Description:   </p>  
    *   <p>Copyright:   Copyright   (c)   2003</p>  
    *   <p>Company:   </p>  
    *   @author   unascribed  
    *   @version   1.0  
    */  
   
  public   class   PKServer   {  
   
      public   PKServer()   {  
          try   {  
              ServerSocket   ss   =   new   ServerSocket(3000);  
              System.out.println("Waiting   for   conncetion...");  
              Socket   s   =   ss.accept();  
              System.out.println("Accept   connection!");  
              InputStream   in   =   s.getInputStream();  
              OutputStream   out   =   s.getOutputStream();  
   
              byte[]   inData   =   new   byte[100];  
              in.read(inData);  
              System.out.println("Recv:   ");  
              for(int   i=0;   i<inData.length;   i++)   {  
                  System.out.print(inData[i]);  
              }  
          }  
          catch(Exception   e)   {  
              e.printStackTrace();  
          }  
      }  
      public   static   void   main(String[]   args)   {  
          PKServer   pkServer   =   new   PKServer();  
      }  
  }  
   
  C(我是用VC做的,比较长节选了一些关键的)  
  ------------------------------------------------------------------  
  WSADATA   wsd;  
  SOCKET   sConnect;  
  LONG   lPort   =   3000;  
   
  char   hostip[12]   =   "172.20.54.9";  
  //unsigned   char   hostip[20]   =   "";  
  //memcpy(   hostip,   strIp,   sizeof(strIp));  
   
  struct   sockaddr_in   ServerHostAddr;     //Server   Address...  
  if   (WSAStartup(   MAKEWORD(2,   2),   &wsd   )   !=   0)  
  AfxMessageBox("Failed   INIT   \n");  
  sConnect   =   socket(   AF_INET,   SOCK_STREAM,   0   );  
  ServerHostAddr.sin_family   =   AF_INET;  
  ServerHostAddr.sin_port   =   htons(   (u_short)lPort   );  
  ServerHostAddr.sin_addr.s_addr   =   inet_addr(   hostip   );  
  if(   connect(   sConnect,   (struct   sockaddr*)&ServerHostAddr,   sizeof(ServerHostAddr)   )   ==   SOCKET_ERROR)  
  AfxMessageBox("Connect   Failed\n");  
   
  这部分建立连接,够烦的把  
   
  char   data[10]   =   "54321";  
  if(   send(sConnect,   data,   sizeof(data),   0   )   ==   SOCKET_ERROR   )  
  AfxMessageBox("Message   Sending   Error...");  
  else  
  AfxMessageBox("Send   Succ");  
   
  发送数据。  
   
   
  明白了把

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多