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>

 

posted @ 2010-11-09 01:45  贰叁事  阅读(378)  评论(0编辑  收藏  举报