android使用socket与PC端进行连接失败

robotsz 2012-10-12 11:11:22
作了一个java的服务器,运行在本机上,本机ip地址是192.168.0.110
服务器代码为:
static int clientNum = 1;

public static void main(String[] args) {
// TODO code application logic here
ServerSocket server = null;

try{
server = new ServerSocket(8316);
}catch(IOException e){
e.printStackTrace();
System.exit(-1);
}

while(true){
try{
Socket ss = server.accept();
new ServerThread(ss,clientNum).start();
}catch(Exception e){
e.printStackTrace();
}
clientNum++;
}

}

}


android客户端使用本机上的模拟器运行,客户端代码为:
public class MobileNewsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Socket socket = null;
DataInputStream dis;
try{
socket = new Socket("192.168.0.110 ",8316);
dis = new DataInputStream(socket.getInputStream());

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

setContentView(R.layout.main);
}
}


现在客户端和服务器无法建立连接
已经在Manifest里面写了

<uses-permission android:name="android.permission.INTERNET" />


帮忙看看哪里出了问题
...全文
450 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bucengyaoyuan 2013-12-01
  • 打赏
  • 举报
回复
android3.0版本以上主线程中不能直接应用网络编程
l13873666736 2012-10-14
  • 打赏
  • 举报
回复
如果虚拟机是4.0以上滴,可能会有问题喔
4.0以上不充许直接在界面上用SOCKET
Afile 2012-10-13
  • 打赏
  • 举报
回复
没有详细的错误内容,搞不好只是你的windows的防火墙在作怪。

请先在windows server上telnet localhost 8316看看能不能有效建立Socket
再在windows server上telnet xxx.xxx.xxx.xxx 8316 把xxx.xxx.xxx.xxx换成你的windows server 的网卡IP,这步确认server socket已经有效侦听8316端口。
然后再别的机器上再telnet xxx.xxx.xxx.xxx 8316看看从其它设备或主机是否可以有效与服务器建立Socket

以上都没问题,再把出错的logcat粘上来给大家看看吧。
AMinfo 2012-10-13
  • 打赏
  • 举报
回复
socket = new Socket("192.168.0.110 ",8316);
这段代码中的IP后面有空格,另外,在模拟器中访问本地IP时,建议将IP改成10.0.2.2试试。
千里马8年Android系统及应用开发经验,曾担任过美国unokiwi公司移动端技术总监兼架构师,对系统开发,性能优化,应用高级开发有深入的研究,Android开源定制ROM Lineage的贡献者之一,国内首家线下开辟培训Android Framework课程,拥有2年的Android系统培训经验。成为腾讯课堂专业负责android framework课程分享第一人,致力于提高国内android Framework水平Android Framework领域内是国内各大手机终端科技公司需要的人才,应用开发者都对Android系统充满着好奇,其中的binder是重中之重,都说无binder无Android,binde是Android系统的任督二脉。课程水平循序渐进,由中级再到高级,满足各个层次水平的android开发者。1、灵活使用binder跨进程通信,在app端对它的任何api方法等使用自如2、可以单独分析android系统源码中任何binder部分,分析再也没有难度3、掌握binder驱动本质原理,及对应binder驱动怎么进行跨进程通信,及内存等拷贝方式数据等4、对binder从上层的java app端一直到最底层的内核binder驱动,都可以顺利理通5、针对系统开发过程中遇到的binder报错等分析方法,及binder bug案例学习6、针对面试官任何的binder问题都可以对答自如7、socket这种跨进程通信实战使用8、针对android源码中使用socket源码轻松掌握9、android系统源码中最常见的socketpair中双向跨进程通信10、使用socket实现一个可以让app执行shell命令的程序

80,351

社区成员

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

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