当前位置: 代码迷 >> J2SE >> java程序是0error,但是仍是无法出现结果是为何
  详细解决方案

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

热度:62   发布时间:2016-04-23 20:07:52.0
java程序是0error,但是还是无法出现结果是为何



源代码:
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);
       }
     }
}
------解决思路----------------------
提示信息已经很明确了,你的端口已经被占用了,换个端口吧。
------解决思路----------------------
引用:
提示信息已经很明确了,你的端口已经被占用了,换个端口吧。

正确,换个监听端口号。
------解决思路----------------------
命令行用nestat -a看看哪个端口没有被占用,换一个没有被占用的就好了
------解决思路----------------------
你的是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视频教学,第十章是讲网络的,挺不错的.

------解决思路----------------------
楼上正解,建议楼主先看看视频教学,按照视频一步步的来。
------解决思路----------------------
小峰在线视频,蛮简单的一个聊天程序,楼主做做就完全弄懂了
------解决思路----------------------
引用:
弱弱的问下,为什么都没有public class,(才学Java不久)还有我运行了下程序,可以呀

没引public 默认是protected,这个是访问权限, 你可以运行 说明你本地端口没被占用
------解决思路----------------------
引用:
Quote: 引用:

嗯, 你可以试试重启一下电脑。


还是没改变 而且后来出现的错误已经跟最先开始的不同了 不知道怎么调

你的程序是没有问题的,应该是端口占用,你可以搜搜怎么解除你本地端口占用问题。
  相关解决方案