问题描述
- 安卓代码无法socket连接个人笔记本服务器~一直没能解决这个问题,求帮助
-
服务器代码:
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class Server
{
public static void main(String[] args) throws IOException
{
Frame frame = new Frame("服务器");
frame.setSize(500, 250);
frame.setLayout(new FlowLayout());
frame.setLocation(500, 250);
TextArea textArea = new TextArea();
frame.add(textArea);frame.setVisible(true); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); ServerSocket serverSocket = new ServerSocket(11111); textArea.append("服务器已启动n"); while (true) { Socket socket = serverSocket.accept(); textArea.append(socket.getInetAddress().getHostAddress() + "已连接n"); socket.close(); } }
}
手机上连接socket的Activity代码:
package com.example.usst.im;import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class LoginActivity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Button login = (Button) findViewById(R.id.btn_login_login);
login.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
new Thread()
{
public void run()
{
senddata();
}}.start(); } private void senddata() { try { Toast.makeText(LoginActivity.this, "尝试连接", Toast.LENGTH_LONG).show(); Socket socket = new Socket("10.16.57.24", 11111); Toast.makeText(LoginActivity.this, "socket开启", Toast.LENGTH_LONG).show(); socket.close(); Toast.makeText(LoginActivity.this, "socket关闭", Toast.LENGTH_LONG).show(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); Button regist = (Button) findViewById(R.id.btn_login_regist); // 为regist按钮绑定事件监听器 regist.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { // 创建需要启动的Activity对应的Intent Intent intent = new Intent(LoginActivity.this, RegistActivity.class); // 启动intent对应的Activity startActivity(intent); } }); }
}
现在环境如下:
大学局域网内手机、电脑皆WIFI接入,电脑IP用的是WIFI的IP,一直尝试链接无反应,
但是用机房两台台式电脑测代码是可以连接的,证明两个台式电脑是通的,
再用笔记本连接台式服务器试验机,是可以连接的,但是台式机反过来无法给笔记本服务器发数据;(这可能有问题)
再说手机:已经加入代码,但是USB真机调试的时候没有显示权限认可界面就直接装上了,一点“登陆”就软件停止运行,
所以手机软件应该也没法传送出去信号,(这也是问题)
请问现在该怎么解决?真心求助啊