BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #26663同步于 2013/8/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

新手求教。

aaa123456
2013/8/22镜像同步11 回复
java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at mars.TCPClient.main(TCPClient.java:15) 利用基于TCP协议的socket进行通信,启动app进行监听之后运行TCPClient.java结果出现以上错误是什么原因?(可能描述的不是很合理==)
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yanxuan机器人#1 · 2013/8/22
ip地址ping的通么 端口能telnet上么
aaa123456机器人#2 · 2013/8/22
Ping之后统计信息显示: 数据包:已发送=4,已接收=0,丢失=4. 这个不太明白是什么意思。初次接触这个,请解释一下。 【 在 yanxuan 的大作中提到: 】 : ip地址ping的通么 : 端口能telnet上么
yanxuan机器人#3 · 2013/8/22
网络不通 是不是有防火墙之类的 【 在 aaa123456 的大作中提到: 】 : Ping之后统计信息显示: : 数据包:已发送=4,已接收=0,丢失=4. : 这个不太明白是什么意思。初次接触这个,请解释一下。 : ...................
aaa123456机器人#4 · 2013/8/22
应该有。要不用防火墙么? 还想请教那个端口的怎么telnet? 【 在 yanxuan 的大作中提到: 】 : 网络不通 是不是有防火墙之类的
JacKie575机器人#5 · 2013/8/22
call me 红领巾 http://docs.oracle.com/javase/tutorial/networking/overview/networking.html
aaa123456机器人#6 · 2013/8/22
谢学长。 问题是传过去的完全没接收到,好像是连接不上的原因。求解 【 在 JacKie575 的大作中提到: 】 : call me 红领巾 : http://docs.oracle.com/javase/tutorial/networking/overview/networking.html
yanxuan机器人#7 · 2013/8/23
说下你的server、client和网络情况 【 在 aaa123456 的大作中提到: 】 : 应该有。要不用防火墙么? : 还想请教那个端口的怎么telnet?
aaa123456机器人#8 · 2013/8/23
package mars.socket; import java.io.IOException; import java.io.InputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.ServerSocket; import java.net.Socket; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SocketActivity extends Activity { /** Called when the activity is first created. */ private Button startButton = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startButton = (Button)findViewById(R.id.startListener); startButton.setOnClickListener(new StartSocketListener()); } class StartSocketListener implements OnClickListener{ @Override public void onClick(View v) { new ServerThread().start(); } } class ServerThread extends Thread{ public void run(){ //声明一个ServerSocket对象 ServerSocket serverSocket = null; try { //创建一个ServerSocket对象,并让这个Socket在4567端口监听 serverSocket = new ServerSocket(4567); //调用ServerSocket的accept()方法,接受客户端所发送的请求 Socket socket = serverSocket.accept(); //从Socket当中得到InputStream对象 InputStream inputStream = socket.getInputStream(); byte buffer [] = new byte[1024*4]; int temp = 0; //从InputStream当中读取客户端所发送的数据 while((temp = inputStream.read(buffer)) != -1){ System.out.println(new String(buffer,0,temp)); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ try { serverSocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } package mars; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.Socket; public class TCPClient { public static void main(String[] args) { try { //创建一个Socket对象,指定服务器端的IP地址和端口号 @SuppressWarnings("resource") Socket socket = new Socket("192.168.0.106",1031); //使用InputStream读取硬盘上的文件 @SuppressWarnings("resource") InputStream inputStream = new FileInputStream("F:/abc/word.txt"); //从Socket当中得到OutputStream OutputStream outputStream = socket.getOutputStream(); byte buffer [] = new byte[4*1024]; int temp = 0 ; //将InputStream当中的数据取出,并写入到OutputStream当中 while((temp = inputStream.read(buffer)) != -1){ outputStream.write(buffer, 0, temp); } outputStream.flush(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 代码是网上找的。 【 在 yanxuan 的大作中提到: 】 : 说下你的server、client和网络情况
JacKie575机器人#9 · 2013/8/23
【 在 aaa123456 的大作中提到: 】 : 谢学长。 : 问题是传过去的完全没接收到,好像是连接不上的原因。求解 //创建一个Socket对象,指定服务器端的IP地址和端口号 @SuppressWarnings("resource") Socket socket = new Socket("192.168.0.106",1031); //使用InputStream读取硬盘上的文件 客户端代码连接到特定端口“1031” //创建一个ServerSocket对象,并让这个Socket在4567端口监听 serverSocket = new ServerSocket(4567); 但是服务器监听的是另一个端口; 修改成一致的才能通信; 另,你ping不通,保守估计你的server ip是错误的,那这样就已经问题很明显了。。