`
jishublog
  • 浏览: 861922 次
文章分类
社区版块
存档分类
最新评论

ios socket编程初步:iphone客户端与java服务端通信

 
阅读更多
大家好,这是我的第一个原创教程,下面我们来学习下最基本的SOCKET是怎样在两台电脑上实现数据交换的。
首先是我们的java端:
package com.hcios.socket;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
 
 
 
public class HCNewServer {
 
    /**
     * 1.创建服务器端Socket
     * 
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("欢迎来到Socket的世界");
        ServerSocket serverSocket=null;
         
         
        try {
            serverSocket=new ServerSocket(5678);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
//      input = new InputStreamReader(System.in);
//        bufw = new BufferedReader(input);
//        try {
//            String str =bufw.readLine();
//            bufw2=new BufferedWriter(os);
//            os.print(str);
//           // System.out.print("Show: " + line);
//            bufw2.flush();
//      InputStreamReader input=new InputStreamReader(System.in);
//      BufferedReader br=new BufferedReader(input);
//      
        int i=0;
        while (true)
        {
            Socket thisClient=null;
            try {
                 
                System.out.print("等待客户端连接");
                //接受方法会阻塞主进程
                thisClient= serverSocket.accept();
                System.out.println("有客户端请求socket。同意");
                while (!thisClient.isClosed()){
                    //读取socket的输入流
                    InputStream is=thisClient.getInputStream();
                    InputStreamReader clientInput=new InputStreamReader(is);
                    BufferedReader br=new BufferedReader(clientInput);
                    System.out.println("当前socket客户端的IP地址:"+thisClient.getInetAddress());
                        String clientStr= br.readLine();
                    System.out.println("客户端说:"+clientStr);
                    if (clientStr.equals("goodbye")) {
                        thisClient.close();
                    }
                }
                 
                 
                 
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             
             
             
//          读取Input流过程也会阻塞主进程
             
             
             
            i++;
             
             
             
        }
         
         
         
    }
 
}



然后是我们的客户端(新建一个单视图的工程,需要导入GCDAsyncSoket.h/.m文件和添加相应框架)

controller源代码:
<script src="https://code.csdn.net/snippets/765.js" type="text/javascript"></script>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics