pc机作服务器,android模拟器做客户端,利用Socket建立通信

pc机做服务器,android模拟器做客户端,利用Socket建立通信服务器端如下:package com.android.Serverimport

pc机做服务器,android模拟器做客户端,利用Socket建立通信
服务器端如下:
package com.android.Server;

import java.io.*;
import java.net.*;

public class AndroidServer extends Thread
{
Socket socket;
AndroidServer(Socket socket)
{
this.socket = socket;
}
public void run()
{
try {
PrintStream pstream = new PrintStream(socket.getOutputStream());
for(int i = 0;i<5;i++)
{
pstream.println(i +" test_AndroidSocket!");
}
  pstream.close();
  socket.close();
} catch (IOException e) {
System.out.println(e);
e.printStackTrace();
}
}
public static void main(String args[]) throws Exception
{
ServerSocket server = new ServerSocket(806);
System.out.println("Listening...");
while(true)
{
Socket sock = server.accept();
System.out.println("Connected");
new AndroidServer(sock).start();
}
}
}



客户端如下:
package com.android.client;

import java.io.DataInputStream;
import java.net.Socket;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Android_clientActivity extends Activity {
TextView txt_tcp=null;
Button btn=null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        txt_tcp=(TextView)findViewById(R.id.txt_tcp);
        btn=(Button)findViewById(R.id.btn);
        btn.setOnClickListener(new Button.OnClickListener(){
        public void onClick(View v)
        {
        try{
        Socket socket = new Socket("127.0.0.1",806);
//        DataInputStream DataIn = new DataInputStream(socket.getInputStream());
        socket.close();
        }catch(Exception ex)
        {
        System.out.println(ex);
        }
        }
        }
        );
    }
}


客户端与服务器连接不上,请高手指点;
log提示如下信息:
java.net.SocketException: Permission denied (maybe missing INTERNET permission)

[最优解释]
楼主,可能是你对android端没有加入权限设置,只有在AndroidManifest.xml文件下加入:“
<uses-permission android:name="android.permission.INTERNET" /> ”这行配置信息即可,如果楼主还有异议可以联系我(看我用户名),我之前做了一个和你需求一样的socket(tcp,udp)通讯小例子
------其他解决方案--------------------


显示权限应该设置<uses-permission android:name="android.permission.INTERNET"></uses-permission>吧,你试一试
[其他解释]
可能是防火墙问题,不过我遇到另一个问题,就是开了之后,没有报错,就是没反应,继续关注此贴。我的写法和楼主的有些不同。

我的是这样写的:


package com.amaker.test;

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;



public class myserver {

/**
 * @param args
 */

public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;


try{
ServerSocket socket = new ServerSocket(8888);

while(true){

Socket client =socket.accept();

OutputStream iout = client.getOutputStream();

String msg = "Hello Send!";

iout.write(msg.getBytes());

client.close();

i++;
System.out.println(String.valueOf(i));


}

}
catch(IOException e){
e.printStackTrace();
}
}


}

[其他解释]
请问1楼:权限在那个XML文件下设置啊?
[其他解释]
按照一楼的说法,我在AndroidMainfest.xml下设置了权限
<uses-permission android:name="android.permission.INTERNET" ></uses-permission>
还是不能运行啊,log日志信息还是一样的!高手指教啊!
[其他解释]
127.0.0.1改成10.0.2.2 android访问本机不是用127.0.0.1  而是10.0.2.2
[其他解释]
使用时机的IP地址看看,不要用127.0.0.1,是不是和windows机制有点不同
[其他解释]
pc机做服务器, 请问:PC机需要搭建web服务器吗?
[其他解释]
端口号太小了吧 不能占用系统的端口吧
[其他解释]
server中的main方法运行怎么有问题

#   If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
[其他解释]
太好啦,正要学习android通信方面的内容,这个做例子来学习,简单清晰非常好,谢谢lz啦。