服务器代码:
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真机调试的时候没有显示权限认可界面就直接装上了,一点“登陆”就软件停止运行,
所以手机软件应该也没法传送出去信号,(这也是问题)
请问现在该怎么解决?
真心求助啊