zoukankan      html  css  js  c++  java
  • android 与 PC的socket通信

    android 与 PC的socket通信

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class YaoChatServer extends Thread {

    private YaoChatServer() throws IOException {
       CreateSocket();
       
    //创建Socket服务器


    public void run() { 
       Socket client;
       String txt;
       
    try { 
        
    while (true)
        
    //线程无限循环,实时监听socket端口
        {
         client
    =ResponseSocket();       
         
    //响应客户端链接请求。。
        
         
    while(true)
         {
          txt
    =ReceiveMsg(client);  
          System.out.println(txt);
          
    //链接获得客户端发来消息,并将其显示在Server端的屏幕上
       
          SendMsg(client,txt);
          
    //向客户端返回消息

          
    if(true)break;
          
    //中断,继续等待链接请求
         }
        
         CloseSocket(client);
         
    //关闭此次链接
        }   
       } 
       
    catch (IOException e) {
        System.out.println(e);
       }

    }

    private ServerSocket server = null;
    private static final int PORT = 5000;
    private BufferedWriter writer;
    private BufferedReader reader;

    private void CreateSocket() throws IOException
    {
       server 
    = new ServerSocket(PORT, 100);
       System.out.println(
    "Server starting..");  
    }

    private Socket ResponseSocket() throws IOException
    {
       Socket client 
    = server.accept(); 
       System.out.println(
    "client connected..");
      
       
    return client;
    }

    private void CloseSocket(Socket socket) throws IOException
    {
       reader.close();
       writer.close();
       socket.close();
       System.out.println(
    "client closed..");
    }

    private void SendMsg(Socket socket,String Msg) throws IOException 
    {
       writer 
    = new BufferedWriter(
          
    new OutputStreamWriter(socket.getOutputStream()));
        writer.write(Msg
    +"\n");
        writer.flush();
       
    }

    private String ReceiveMsg(Socket socket) throws IOException
    {
       reader 
    = new BufferedReader(
         
    new InputStreamReader(socket.getInputStream()));     
        System.out.println(
    "server get input from client socket..");
        String txt
    ="Sever send:"+reader.readLine();
       
        
    return txt;
    }

    public static void main(final String args[]) throws IOException {
       YaoChatServer yaochatserver 
    = new YaoChatServer();
       
    if (yaochatserver != null) {
        yaochatserver.start();
       }
    }

    }

    package com.android.Yao;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.net.UnknownHostException;

    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.Socket;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.*;


    public class YaoChatRoomAndroid extends Activity {
        
    /** Called when the activity is first created. */
        @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
           

            findviews();
            setonclick();

        }

        
    private EditText chattxt;
        
    private TextView chattxt2;
        
    private Button chatok;
        
        
    public void findviews()
        {
            chattxt 
    = (EditText)this.findViewById(R.id.chattxt);
            chattxt2 
    = (TextView)this.findViewById(R.id.chattxt2);
            chatok   
    = (Button)this.findViewById(R.id.chatOk);
        }
        
        
    private void setonclick()
        {
            chatok.setOnClickListener(
    new View.OnClickListener() {
       
        @Override
        
    public void onClick(View v) {
         
    try {
          connecttoserver(chattxt.getText().toString());
         } 
    catch (UnknownHostException e) {
          
    // TODO Auto-generated catch block
          e.printStackTrace();
         } 
    catch (IOException e) {
          
    // TODO Auto-generated catch block
          e.printStackTrace();
         }
        }
       });
        }


        
    public void connecttoserver(String socketData) throws UnknownHostException, IOException
    {
        Socket socket
    =RequestSocket("192.168.10.119",5000);
       SendMsg(socket,socketData);  
       String txt 
    = ReceiveMsg(socket);
       
    this.chattxt2.setText(txt);    
    }

        
        
    private Socket RequestSocket(String host,int port) throws UnknownHostException, IOException
        {   
        Socket socket 
    = new Socket(host, port);
        
    return socket;
        }
        
        
    private void SendMsg(Socket socket,String msg) throws IOException
        {
        BufferedWriter writer 
    = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
       writer.write(msg.replace(
    "\n"" ")+"\n");
       writer.flush();
        }
        
        
    private String ReceiveMsg(Socket socket) throws IOException
        {
        BufferedReader reader 
    = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        
       String txt
    =reader.readLine();
       
    return txt;

        }    
    }
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation
    ="vertical"
        android:layout_width
    ="fill_parent"
        android:layout_height
    ="fill_parent"
        
    >
    <TextView
    android:id="@+id/chattxt2"
    android:layout_width
    ="319px"
    android:layout_height
    ="68px"
    android:text
    ="TextView"
    android:layout_alignParentTop
    ="true"
    android:layout_alignParentLeft
    ="true"
    >
    </TextView>
    <EditText
    android:id="@+id/chattxt"
    android:layout_width
    ="319px"
    android:layout_height
    ="52px"
    android:text
    ="EditText"
    android:textSize
    ="18sp"
    android:layout_below
    ="@+id/widget30"
    android:layout_alignParentLeft
    ="true"
    >
    </EditText>
    <Button
    android:id="@+id/chatOk"
    android:layout_width
    ="320px"
    android:layout_height
    ="41px"
    android:text
    ="Button"
    android:layout_below
    ="@+id/widget29"
    android:layout_alignParentLeft
    ="true"
    >
    </Button>

    </LinearLayout>
  • 相关阅读:
    Android与WebView的插件管理机制
    在mac下搭建Apacheserver
    “懒”也要有境地---大部分程序猿都在的地方,再不来就out了。
    codeforces Looksery Cup 2015 H Degenerate Matrix
    HDU 1247 Hat’s Words(字典树变形)
    SICP 习题 (1.38)解题总结
    scikit-learn:4.2. Feature extraction(特征提取,不是特征选择)
    iOS_高效开发之道
    亚马逊2014在线面试第一题
    通过AO连接多个EO并进行使用
  • 原文地址:https://www.cnblogs.com/wanyao/p/2266860.html
Copyright © 2011-2022 走看看