JAVA基于 Socket开发C/S模式的聊天程序出现的一个错误,希望大家帮忙找出来!!...

Java Socket 聊天程序问题
本文介绍了一个简单的Java Socket聊天程序实现,并记录了在实际运行过程中遇到的问题及错误信息。作者描述了服务端与客户端连接后发送消息的具体流程,并提到了在发送消息后出现的异常情况。
代码:
服务端:
ContractedBlock.gifExpandedBlockStart.gifCode
 import java.awt.*;
 
import java.awt.event.*;
 
import javax.swing.*;
 
import java.net.*;
 
import java.io.*;
 
public class Server
 {
     
public static void main(String []args)
     {
         
try
        {
             ServerSocket server
=new ServerSocket(4002);
             System.out.println(
"Server is starting");
             Socket client
=server.accept();
            System.out.println(
"Connected the client");
             String msg;
             BufferedReader sin
=new BufferedReader(new InputStreamReader(System.in));
             BufferedReader cin
=new BufferedReader(new InputStreamReader(client.getInputStream()));
             PrintWriter sout
=new PrintWriter(client.getOutputStream());
             System.out.println(
"Client say: "+cin.readLine());
             msg
=sin.readLine();
             
while(!msg.equals("bye"))
             {
                 sout.println(msg);
                 sout.flush();
                 System.out.println(
"You say:"+msg);
                 System.out.println(
"Client say : "+cin.readLine());
                 msg
=sin.readLine();
             }
             System.out.println(
"The chat is end");
             sin.close();
             cin.close();
             sout.close();
             client.close();
             server.close();
        }
         
catch(IOException e)
        {
             System.out.println(
"Error"+e.toString());
        }
     }
 }
客户端:
ContractedBlock.gifExpandedBlockStart.gifCode
 import java.awt.*;
 
import java.awt.event.*;
 
import javax.swing.*;
 
import java.net.*;
 
import java.io.*;
public class Client
{
    
public static void main(String [] args)
    {
        
try
        {
            Socket client
=new Socket("127.0.0.1",4002);
            BufferedReader cin
=new BufferedReader(new InputStreamReader(System.in));
            BufferedReader sin
=new BufferedReader(new InputStreamReader(client.getInputStream()));
            PrintWriter cout
=new PrintWriter(client.getOutputStream());
            String msg;
            System.out.println(
"Connect Server .");
            msg
=cin.readLine();
            
while(!msg.equals("bye"))
            {
                cout.println(msg);
                cout.close();
                System.out.println(
"You say: "+msg);
                System.out.println(
"Server say:"+sin.readLine());
                msg
=cin.readLine();
            }
            System.out.println(
"The chat is end");
            cin.close();
            sin.close();
            cout.println();
            client.close();
        }
        
catch(Exception e)
        {
            System.out.println(
"Error:"+e.getMessage());
        }
        
    }
}
我发完一次数据后,客户端提示:Socket Close.
然后,服务端发数据后,就出现
Errorjava.net.SocketException: Software caused connection abort: recv failed
我是菜鸟。诚恳请教!
困然很久了。。查了资料。但是还是不清楚为什么。这代码是参考教程写的

转载于:https://www.cnblogs.com/ChinaPgm/archive/2009/08/29/1556522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值