为什么这个错误“java.net.SocketException:Connection reset”在运行服务器和客户端时 [英] WHY THIS ERROR "java.net.SocketException: Connection reset" while running sever and client

查看:280
本文介绍了为什么这个错误“java.net.SocketException:Connection reset”在运行服务器和客户端时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的srever程序

  package  server_socket; 
import java.io. *;
import java.net.ServerSocket;
import java.net.Socket;


class Server_socket
{
public 静态 void main( String [ ] args) throws IOException
{
try
{
ServerSocket sk = new ServerSocket( 9999 );
Socket sock = sk .accept();
BufferedReader br = new BufferedReader( new InputStreamReader(sock.getInputStream()));
String temp = br.readLine();
System.out.println( 来自客户端的消息是:: + temp) ;
PrintStream pr = new PrintStream(sock.getOutputStream());
字符串 str = 来自服务器的确认 ;
pr.println(str);
}
catch (例外情况)
{
}
}
}







我的客户计划







  package  client_socket; 

import java.io. *;
import java.net.Socket;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

class client_socket
{
public static void main( String [] args)< span class =code-keyword> throws IOException
{
Connection c = null;
语句stmt = null;
尝试
{
Socket sock = new 套接字( 10.176.24.48 9999 );
PrintStream pr = new PrintStream(sock.getOutputStream());
System.out.println( 输入要发送给服务器的消息);
BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
String temp = br.readLine();
pr.println(temp);
BufferedReader ed = new BufferedReader( new InputStreamReader(sock.getInputStream()));
String st = ed.readLine();
System.out.println(st);
Class.forName( org.postgresql.Driver);
c = DriverManager
.getConnection( jdbc:postgresql://10.176.24.48:5432 / postgres
postgres );

stmt = c.createStatement();
字符串 sql = 创建数据库TEST_DB_1编码'UTF8';
stmt.executeUpdate(sql);
stmt.close();
c.close();

}
catch (Exception ex)
{
System.err.println(ex.getClass) ()。getName()+ + ex.getMessage());
System.exit( 0 );
}

System.out.println( DBcreated successfully);



}
}

解决方案

 尝试 {
[]花式代码]

}
catch (Exception ex)
{
ex.printStackTrace(); // 使用此
}





这应该可以帮助您查看错误。



大多数情况下,由于防火墙等原因,它是其中一台机器不接受连接


my srever program

package server_socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;


class Server_socket
{
       public static void main(String[] args) throws IOException
       {
           try
                {
                ServerSocket  sk = new ServerSocket (9999);
                Socket sock =sk .accept();
                BufferedReader br=new BufferedReader(new InputStreamReader(sock.getInputStream()));
                String temp=br.readLine();
                System.out.println("The mesage from client is::"+temp);
                PrintStream  pr=new PrintStream(sock.getOutputStream()); 
                String  str = "acknowledgement from server";
                pr.println(str);
                }
            catch (Exception ex)
                {
                }
        }
}	




my client program



package client_socket;

import java.io.*;
import java.net.Socket;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

 class client_socket
{
    public static void main(String[] args) throws IOException
    {
        Connection c = null;
        Statement stmt = null;
        try
        {
                    Socket sock = new Socket("10.176.24.48",9999);
                    PrintStream  pr=new PrintStream(sock.getOutputStream()); 
                    System.out.println("enter the message to be send to server");
                    BufferedReader  br=new  BufferedReader(new InputStreamReader(System.in));  
                    String temp = br.readLine();
                    pr.println(temp);	
                    BufferedReader  ed=new  BufferedReader(new InputStreamReader(sock.getInputStream())); 
                    String  st = ed.readLine();
                    System.out.println(st);
                    Class.forName("org.postgresql.Driver");
         c = DriverManager
            .getConnection("jdbc:postgresql://10.176.24.48:5432/postgres",
            "postgres", "");
         
         stmt = c.createStatement();
         String sql = "CREATE DATABASE TEST_DB_1 ENCODING 'UTF8'";
         stmt.executeUpdate(sql);
         stmt.close();
         c.close();
                    
        }
        catch(Exception ex)
        {
        System.err.println(ex.getClass().getName()+": "+ex.getMessage());
         System.exit(0);
      }
     
         System.out.println("DBcreated successfully");             

        
     
    }
}

解决方案

try{
[]fancy code]

}
catch(Exception ex)
{
    ex.printStackTrace(); // use this
}



That should help you to see the error.

Most times it's one of the machines not accepting the connection due to firewall etc.


这篇关于为什么这个错误“java.net.SocketException:Connection reset”在运行服务器和客户端时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆