首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ConnectException引发的ServerSocket

使用ConnectException引发的ServerSocket
EN

Stack Overflow用户
提问于 2012-09-03 07:02:46
回答 2查看 107关注 0票数 0

下面的代码在编译时是正确的,但是运行时它是这样的: ConnectException错误映像:

代码语言:javascript
复制
import java.net.*;
import java.io.*;

class TcpChat 
 {
public static void main(String[] args) throws Exception
 {
Socket s = new Socket("Ip",20000);
ServerSocket ss = new ServerSocket(20000);

new Thread(new TcpClient(s)).start();
new Thread(new TcpServer(ss)).start();
 }
 }

class TcpClient implements Runnable
 {
Socket s;
TcpClient(Socket s)
 {
this.s = s;
 }

public void run()
 {
try
 {
OutputStream out = s.getOutputStream();
out.write("hello javaserver".getBytes());
s.close();
 }
catch (Exception e)
{
 }
 }
 }

class TcpServer implements Runnable
{
ServerSocket ss;
TcpServer(ServerSocket ss)
 {
this.ss = ss;
 }

public void run()
 {
try
{
Socket s = ss.accept();
InputStream in = s.getInputStream();
byte[] buf =new byte[1024];
int length =in.read(buf);
String ip =s.getInetAddress().getHostAddress();
String data = new String(buf,0,length);

System.out.println(ip+":::"+data);

s.close();
ss.close();


 }
catch (Exception e)
{
}
}



}

另外,我使用的IP地址没有错误,在我的PC上我使用我自己的IP。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-03 07:06:13

您没有发布完整的代码,因此很难检查,但在实际打开服务器套接字之前,您似乎试图连接到端口(即打开客户端套接字)。当然,这是行不通的,因为在这个端口上还没有监听(因此:连接被拒绝了)。

票数 2
EN

Stack Overflow用户

发布于 2012-09-03 07:23:40

更改您的主要方法,如

代码语言:javascript
复制
    ServerSocket ss = new ServerSocket(20000);
    Socket s = new Socket("127.0.0.1", 20000);
    new Thread(new TcpServer(ss)).start();
    new Thread(new TcpClient(s)).start();

您可以为Chat Server 这里找到一个更好的示例。你也可以从这里上读到关于这里的文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12243312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档