这是我做的一个案例不可以实现所以无限接近安卓疯狂讲义的的socket例子.
请大家看一下指点下子
服务器 一
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
public class servers {
static List<Socket> list = new ArrayList<Socket>();
public static void main(String[] args) throws IOException {
System.out.println("======+==== ====");
// TODO Auto-generated method stub
ServerSocket ss=new ServerSocket(3369);
while(true)
{
System.out.println("+");
Socket s=ss.accept();
new Thread(new runn(s)).start();
list.add(s);
}
}
}
服务器二:
package dao;import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;public class runn implements Runnable{
Socket so=null;
BufferedReader in=null;
public runn(Socket so)
{
this.so=so;
try {
this. in=new BufferedReader(new InputStreamReader (so.getInputStream(),"utf-8"));
} catch (IOException e) {e.printStackTrace();}
}
@Override
public void run() {
String s=null;
try {
while((s=in.readLine())!=null)
{
for(Socket so:servers.list)
{so.getOutputStream().write(s.getBytes("utf-8"));}
}
} catch (IOException e) {
e.printStackTrace();}}
}客户端:
package com.s;import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SockeActivity extends Activity {
EditText input;Button request;TextView t;OutputStream os;
Socket so; Handler handler;BufferedReader br;BufferedWriter bu;
Runnable run =new Runnable() {
public void run() {
try {
Message m=new Message();
String s=null;
while ((s = br.readLine()) != null) {
ha.sendMessage(m);
}
} catch (IOException e) {
e.printStackTrace();
}
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
input=(EditText) findViewById(R.id.editText1);
request=(Button)findViewById(R.id.button1);
t=(TextView) findViewById(R.id.textView1);
try {
this.so=new Socket("192.168.0.105", 3369);
os=so.getOutputStream();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void butt(View v) throws IOException
{
os.write(input.getText().toString().getBytes());
os.flush();
}
Handler ha=new Handler()
{
@Override
public void handleMessage(Message msg) {
t.append(msg.obj.toString());
}
};
} 代码基本都在这里.服务器接收不到客户端的数据,我发现的问题流不关闭都red()一直阻塞了,但是流关闭socket就关闭.我要不关闭socket也能打到接受客户端的信息.指点下.下面是代码的连接,帮我试试谢谢
http://download.csdn.net/detail/yung7086/5388413安卓socketAndroid
看下这篇帖子,上边代码都有,蛮好用的