pc机作服务器,android模拟器做客户端,利用Socket建立通信
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)通讯小例子
------其他解决方案--------------------
服务器端如下:
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)通讯小例子
------其他解决方案--------------------