android与pc的socket通信JAVA
来源:互联网 发布:java代码执行顺序 编辑:程序博客网 时间:2024/05/16 09:59
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" ><TextViewandroid:id="@+id/chattxt2"android:layout_width="319px"android:layout_height="68px"android:text="TextView"android:layout_alignParentTop="true"android:layout_alignParentLeft="true"></TextView><EditTextandroid: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><Buttonandroid: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>