java程序是0error,但是还是无法出现结果是为何

fishman_ 2014-10-30 02:23:08



源代码:
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true){
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
...全文
474 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
965攻城狮 2014-11-17
  • 打赏
  • 举报
回复
引用 10 楼 fishman_ 的回复:
[quote=引用 9 楼 agfagafsdfas 的回复:] 嗯, 你可以试试重启一下电脑。
还是没改变 而且后来出现的错误已经跟最先开始的不同了 不知道怎么调[/quote] 你的程序是没有问题的,应该是端口占用,你可以搜搜怎么解除你本地端口占用问题。
lpokm0550 2014-11-04
  • 打赏
  • 举报
回复
引用 5 楼 u010060906 的回复:
弱弱的问下,为什么都没有public class,(才学Java不久)还有我运行了下程序,可以呀
没引public 默认是protected,这个是访问权限, 你可以运行 说明你本地端口没被占用
fishman_ 2014-11-02
  • 打赏
  • 举报
回复
引用 15 楼 u010060906 的回复:
你的是java的TCP编程,一般需要两个程序,一个Server程序,一个Client程序, Socket构造的是Client的程序,要运行Client程序,需要先运行Server程序,我就写了一个Client程序, 1 import java.io.*; 2 import java.net.*; 3 public class TCPTest{ 4 public static void main(String[] args)throws Exception{ 5 Socket s = new Socket("127.0.0.1",61273); 6 s.close(); 7 } 8 } 直接运行就出现跟你一样错误. Exception in thread "main" java.net.ConnectException: 拒绝连接 at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.<init>(Socket.java:425) at java.net.Socket.<init>(Socket.java:208) at TCPTest.main(TCPTest.java:5) 如果我写一个Server程序, 1 import java.io.*; 2 import java.net.*; 3 public class TCPServerTest{ 4 public static void main(String[] args)throws Exception{ 5 ServerSocket ss = new ServerSocket(61273); 6 ss.accept(); 7 ss.close(); 8 } 9 } 先运行Server程序再运行Client程序就没错误了.我也是初学者,今天才好好看了看这个,推荐你看一下马士兵的J2se视频教学,第十章是讲网络的,挺不错的.
嗯嗯! 可是为什么拒绝链接 下面的结果好像还是出现了呢 at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at java.net.Socket.<init>(Socket.java:425) at java.net.Socket.<init>(Socket.java:208) at TCPTest.main(TCPTest.java:5) 这些最后面的数字 是我运行一直都没出现过的 一直都是 unknown source
llw-_- 2014-11-01
  • 打赏
  • 举报
回复
你的是java的TCP编程,一般需要两个程序,一个Server程序,一个Client程序,
Socket构造的是Client的程序,要运行Client程序,需要先运行Server程序,我就写了一个Client程序,
1 import java.io.*;
2 import java.net.*;
3 public class TCPTest{
4 public static void main(String[] args)throws Exception{
5 Socket s = new Socket("127.0.0.1",61273);
6 s.close();
7 }
8 }
直接运行就出现跟你一样错误.
Exception in thread "main" java.net.ConnectException: 拒绝连接
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at TCPTest.main(TCPTest.java:5)
如果我写一个Server程序,
1 import java.io.*;
2 import java.net.*;
3 public class TCPServerTest{
4 public static void main(String[] args)throws Exception{
5 ServerSocket ss = new ServerSocket(61273);
6 ss.accept();
7 ss.close();
8 }
9 }
先运行Server程序再运行Client程序就没错误了.我也是初学者,今天才好好看了看这个,推荐你看一下马士兵的J2se视频教学,第十章是讲网络的,挺不错的.
fishman_ 2014-11-01
  • 打赏
  • 举报
回复
引用 13 楼 u010060906 的回复:
[quote=引用 8 楼 fishman_ 的回复:]
[quote=引用 4 楼 y1018799688 的回复:]
命令行用nestat -a看看哪个端口没有被占用,换一个没有被占用的就好了


随便换了个还是不行诶

[/quote]
你的socket构造函数中的"hostname"不对吧,没有那个主机呀
这是API上面写得:
public Socket(String host,
int port)
参数:
host - 主机名,或者为 null,表示回送地址。
port - 端口号。
抛出:
UnknownHostException - 如果无法确定主机的 IP 地址。
换一个构造函数吧,Socket("localhost",61273);试试,或者Socket("127.0.0.1",61273)看看行不?
[/quote]

还是不行诶 好像被拒绝访问了
LuPlus 2014-11-01
  • 打赏
  • 举报
回复
小峰在线视频,蛮简单的一个聊天程序,楼主做做就完全弄懂了
wangruohang 2014-11-01
  • 打赏
  • 举报
回复
楼上正解,建议楼主先看看视频教学,按照视频一步步的来。
llw-_- 2014-10-31
  • 打赏
  • 举报
回复
引用 8 楼 fishman_ 的回复:
[quote=引用 4 楼 y1018799688 的回复:] 命令行用nestat -a看看哪个端口没有被占用,换一个没有被占用的就好了
随便换了个还是不行诶 [/quote] 你的socket构造函数中的"hostname"不对吧,没有那个主机呀 这是API上面写得: public Socket(String host, int port) 参数: host - 主机名,或者为 null,表示回送地址。 port - 端口号。 抛出: UnknownHostException - 如果无法确定主机的 IP 地址。 换一个构造函数吧,Socket("localhost",61273);试试,或者Socket("127.0.0.1",61273)看看行不?
llw-_- 2014-10-31
  • 打赏
  • 举报
回复
引用 7 楼 fishman_ 的回复:
[quote=引用 5 楼 u010060906 的回复:] 弱弱的问下,为什么都没有public class,(才学Java不久)还有我运行了下程序,可以呀
对啊是可以啊 可是我的端口被占用了 不知道怎么改 [/quote] 就把你的那个端口号6789改成别的呗,比如6666什么的?
fishman_ 2014-10-31
  • 打赏
  • 举报
回复

这个错误是什么啊 还是端口号的问题吗 怎么选端口号啊


fishman_ 2014-10-31
  • 打赏
  • 举报
回复
引用 9 楼 agfagafsdfas 的回复:
嗯, 你可以试试重启一下电脑。
还是没改变 而且后来出现的错误已经跟最先开始的不同了 不知道怎么调
965攻城狮 2014-10-31
  • 打赏
  • 举报
回复
嗯, 你可以试试重启一下电脑。
fishman_ 2014-10-31
  • 打赏
  • 举报
回复
引用 4 楼 y1018799688 的回复:
命令行用nestat -a看看哪个端口没有被占用,换一个没有被占用的就好了


随便换了个还是不行诶

fishman_ 2014-10-31
  • 打赏
  • 举报
回复
引用 5 楼 u010060906 的回复:
弱弱的问下,为什么都没有public class,(才学Java不久)还有我运行了下程序,可以呀
对啊是可以啊 可是我的端口被占用了 不知道怎么改
fishman_ 2014-10-31
  • 打赏
  • 举报
回复


为什么这里看不到端口 6789 的占用呢
llw-_- 2014-10-31
  • 打赏
  • 举报
回复
弱弱的问下,为什么都没有public class,(才学Java不久)还有我运行了下程序,可以呀
y1018799688 2014-10-31
  • 打赏
  • 举报
回复
命令行用nestat -a看看哪个端口没有被占用,换一个没有被占用的就好了
fishman_ 2014-10-31
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
提示信息已经很明确了,你的端口已经被占用了,换个端口吧。
那可以换什么呢 刚接触是在不懂啊QAQ
快乐的2 2014-10-30
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
提示信息已经很明确了,你的端口已经被占用了,换个端口吧。
正确,换个监听端口号。
rumlee 2014-10-30
  • 打赏
  • 举报
回复
提示信息已经很明确了,你的端口已经被占用了,换个端口吧。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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