遇到一个Android的socket问题。求解答。

_LittleMing 2014-07-04 05:16:25
服务器端:

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleServer {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(30000);
while(true){
Socket s = ss.accept();
s.close();
}
}
}

客户端:

package com.example.simpleclient;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;

public class MainActivity extends Activity {

private TextView tv;
private Handler handler ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textView);
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.what==0x123){
tv.setText("连接成功");
}
}
};
Thread thread = new Thread(new MyThread(handler));
thread.start();
}
}

class MyThread implements Runnable{
private Handler handler;
public MyThread(Handler handler){
this.handler = handler;
}
public void run(){
try {
Socket socket = new Socket("192.168.23.1",30000);
handler.sendEmptyMessage(0x123);
} catch (Exception e) {
e.printStackTrace();
}
}

}


手机和电脑连的是同一个网,服务器和客户端一直无法连接成功,不知道是为什么。
...全文
5120 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuxx0502 2016-08-23
  • 打赏
  • 举报
回复
以上说的都对,补充点:手机与服务器需要用同一网络,这一点简直弄死我了。
老帅哥23333 2016-08-04
  • 打赏
  • 举报
回复
多半可能是你防火墙没放开端口额
A-Liang 2016-03-08
  • 打赏
  • 举报
回复
引用 18 楼 limitvic 的回复:
[quote=引用 17 楼 jiaomengshu 的回复:] lz,同样的问题,请问解决了嘛?
这个是我当时手机的问题吧,用现在的手机测试又可以连接上了。还有就是网络权限要加。[/quote] 还是没有找到root cause啊,同样遇到该问题,在不同的手机确实有不同的现象,修改server nginx配置解决了,是SSL证书的问题
AgBaoの未来 2016-01-25
  • 打赏
  • 举报
回复
引用 18 楼 limitvic 的回复:
[quote=引用 17 楼 jiaomengshu 的回复:] lz,同样的问题,请问解决了嘛?
这个是我当时手机的问题吧,用现在的手机测试又可以连接上了。还有就是网络权限要加。[/quote] 我现在也遇到同样的问题,权限什么都加了!
开发者_android 2015-05-05
  • 打赏
  • 举报
回复
引用 18 楼 limitvic 的回复:
[quote=引用 17 楼 jiaomengshu 的回复:] lz,同样的问题,请问解决了嘛?
这个是我当时手机的问题吧,用现在的手机测试又可以连接上了。还有就是网络权限要加。[/quote] 亲,一年前的贴,你现在回复,是不是感觉怪怪的呢?还不结贴呀~
_LittleMing 2015-05-05
  • 打赏
  • 举报
回复
引用 17 楼 jiaomengshu 的回复:
lz,同样的问题,请问解决了嘛?
这个是我当时手机的问题吧,用现在的手机测试又可以连接上了。还有就是网络权限要加。
jiaomengshu 2015-04-30
  • 打赏
  • 举报
回复
lz,同样的问题,请问解决了嘛?
云上飞翔 2014-07-08
  • 打赏
  • 举报
回复
程序没有问题。我几乎肯定:你在AndroidManifest.xml中没有添加网络权限,因而会感觉没有效果,网络不通。 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
fireyou 2014-07-08
  • 打赏
  • 举报
回复
路过,学习一下,还没搞过socket
leaves_wwl 2014-07-08
  • 打赏
  • 举报
回复
个人感觉手机网络没连上局域网
_LittleMing 2014-07-07
  • 打赏
  • 举报
回复
引用 10 楼 u012983329 的回复:
你的端口号太大了吧~你上网差差 端口号是有范围的 你试下换成把端口号换成8888
端口号的范围从1-65535 30000不算大了。
张大熊 2014-07-07
  • 打赏
  • 举报
回复
你是用模拟器测试的么? 如果是的话吧那个IP地址改成 192.168.23.1 改成 10.0.2.2就可以了
zhou78935001 2014-07-07
  • 打赏
  • 举报
回复
感觉是网络问题,你可以用eclipse写一个java客户端来测试连接,这个不需要网络,能连接证明代码没有问题
张大熊 2014-07-06
  • 打赏
  • 举报
回复
你的端口号太大了吧~你上网差差 端口号是有范围的 你试下换成把端口号换成8888
_LittleMing 2014-07-06
  • 打赏
  • 举报
回复
引用 8 楼 jinhan13789 的回复:
s.close 你刚打开就关闭了~而且没有处理操作
试过了,就是不关闭也还是连接不上。代码我是照着《Android疯狂讲义》上敲的。
冷树树 2014-07-06
  • 打赏
  • 举报
回复
s.close 你刚打开就关闭了~而且没有处理操作
_LittleMing 2014-07-05
  • 打赏
  • 举报
回复
引用 6 楼 jeky198306 的回复:
怎么频繁打开和关闭serversocket,打开一直监听就可以了
我的serversocket是一直开着的。
jeky_zhang2013 2014-07-04
  • 打赏
  • 举报
回复
怎么频繁打开和关闭serversocket,打开一直监听就可以了
Birds2018 2014-07-04
  • 打赏
  • 举报
回复
那问题在手机上面了,你试试其他手机。 Socket socket = new Socket(); socket.connect(new InetSocketAddress(host, port));
_LittleMing 2014-07-04
  • 打赏
  • 举报
回复
引用 3 楼 birdsaction 的回复:
你在 PC上 cmd 中 telnet 192.168.23.1 30000 看能不能连接上。
试了一下,可以连的上啊!还可以传文字的!
加载更多回复(3)

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧