返回信息流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结果出现以上错误是什么原因?(可能描述的不是很合理==)
这是一条镜像帖。来源:北邮人论坛 / java / #26663同步于 2013/8/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
新手求教。
aaa123456
2013/8/22镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Ping之后统计信息显示:
数据包:已发送=4,已接收=0,丢失=4.
这个不太明白是什么意思。初次接触这个,请解释一下。
【 在 yanxuan 的大作中提到: 】
: ip地址ping的通么
: 端口能telnet上么
网络不通 是不是有防火墙之类的
【 在 aaa123456 的大作中提到: 】
: Ping之后统计信息显示:
: 数据包:已发送=4,已接收=0,丢失=4.
: 这个不太明白是什么意思。初次接触这个,请解释一下。
: ...................
call me 红领巾
http://docs.oracle.com/javase/tutorial/networking/overview/networking.html
谢学长。
问题是传过去的完全没接收到,好像是连接不上的原因。求解
【 在 JacKie575 的大作中提到: 】
: call me 红领巾
: http://docs.oracle.com/javase/tutorial/networking/overview/networking.html
说下你的server、client和网络情况
【 在 aaa123456 的大作中提到: 】
: 应该有。要不用防火墙么?
: 还想请教那个端口的怎么telnet?
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和网络情况
【 在 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是错误的,那这样就已经问题很明显了。。