高手,您好:
    我是一名学习软件工程的学生,现在,我正在做一个CS结构的聊天系统。这是我的第一个Java作品。写了近8K行代码,调试了好几周的时间,现在,编译时错误已经排查完毕。弟我现在已经做出了一个“集成测试”的环境,准备将其中的各个功能类,进行集成.
    我的设计思路是:
    做出CSD的聊天系统:
    D端:开发者端.
    S端:运营者端.
    C端:整个系统客户端.
    在运行程序的时候,首先D端打开,S端连接到D端,然后,C端用户上线,连接到S端和D端进行数据通信.
    现在,弟我初步得到了下面的成果:
    排查掉了几十个类文件中的编译错误.   
    并且,现在弟我打开D端后,能够没有运行时错误,S端打开后,连接D端.
    早晨弟我在CSDN中的提问,得到了高手的点拨.
    让我的“S端连接D端的几个运行时错误”,得到排查,并且,弟我得到了很大的启发.
    由于工期紧张,希望能够再次得到CSDN中高手的回复指导:
    现在弟我将我的D端的入口类进行了运行后,无运行时错误。弟我将S端的入口类运行后,此时编译器报出的错误为:
    
    这个时候,我的D端的代码如下:
    package d_port_package;import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;public class D_Updata_c_port_Data {
static int[] Localmemberonline = new int[200];
static String D_PORT_SERVER = "127.0.0.1";
static String S_PORT_SERVER = "127.0.0.1";
static String C_PORT_CLIENT = "127.0.0.1";
DataInputStream dips0 = null;
ServerSocket ss1 = null; 
Socket s1 = null;
Socket s2 = null;
byte b = 'b';

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
new D_Updata_c_port_Data().startGetValue();
}public void startGetValue(){
try {
ss1 = new ServerSocket(9999,50);
while(true){
s1 = ss1.accept();
int condition = dips0.read();
switch(condition){
case 'a':
{
D_ManageTheChannel11DS m11 = new D_ManageTheChannel11DS(s1,"Thread_11");
m11.start();
D_ManageTheChannel12DS m12 = new D_ManageTheChannel12DS(s2,"Thread_12");
m12.start();
}
case 'b':
{
D_ManageTheChannel21DS m21 = new D_ManageTheChannel21DS(s1,"Thread_21");
m21.start();
D_ManageTheChannel22DS m22 = new D_ManageTheChannel22DS(s2,"Thread_22");
m22.start();
}
case 'F':
{
D_portManageTheSysRegister m3 = new D_portManageTheSysRegister(s1,"Thread_3");
m3.start();
}
case 'M':
{
D_ManageTheChannel31DS m4 = new D_ManageTheChannel31DS(s1,"Thread_4");
m4.start();
}
} }
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}     弟我的S端的代码为:
     package s_port_package_BeiJing;import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Arrays;
import java.util.HashMap;import javax.swing.JFrame;public class ChatServer extends JFrame {
/**
 * ChatServer.java
 * 2013-5-9
 * @author cjco
 */
    //全局定义区域:定义各种成员变量;
ServerSocket ss1 = null;
public static int Index = 0;
static int num = 0;
int[] a = null;
int condition = -1;
private static final long serialVersionUID = 1L;
boolean started = false;
static Socket so1;
Socket so4;
static int PM_linknumlog = 0;
DataOutputStream dos1 = null;
DataOutputStream dos2 = null;
DataOutputStream dos3 = null;
DataInputStream dis1 = null;
DataInputStream dis2 = null;
DataInputStream dis3 = null;
ObjectOutputStream oops = null;
static int[] Localstaff = new int[200];
static int[] LocalMemberonline = new int[200];
static int[] Membercomplicatingnum = new int[200]; public static S_port_ChatClientMember_DS JB0 = null;
public static S_port_ChatClientMember_DS JB1 = null;
public static S_port_ChatClientMember_DS JB2 = null;
public static S_port_ChatClientMember_DS JB3 = null;
public static S_port_ChatClientMember_DS JB4 = null;
public static S_port_ChatClientMember_DS JB5 = null;
public static S_port_ChatClientMember_DS JB6 = null;
public static S_port_ChatClientMember_DS JB7 = null;
public static S_port_ChatClientMember_DS JB8 = null;
public static S_port_ChatClientMember_DS JB9 = null;
public static S_port_ChatClientMember_DS JB10 = null;
public static S_port_ChatClientMember_DS JB11 = null;
public static S_port_ChatClientMember_DS JB12 = null;
public static S_port_ChatClientMember_DS JB13 = null;
public static S_port_ChatClientMember_DS JB14 = null;
public static S_port_ChatClientMember_DS JB15 = null;
public static S_port_ChatClientMember_DS JB16 = null;
public static S_port_ChatClientMember_DS JB17 = null;
public static S_port_ChatClientMember_DS JB18 = null;
public static S_port_ChatClientMember_DS JB19 = null;
public static S_port_ChatClientMember_DS JB20 = null;
public static HashMap<Byte,S_port_ChatClientcustomer_DS> mapcustomer = new HashMap<Byte,S_port_ChatClientcustomer_DS>(); public static HashMap<Byte,S_port_ChatClientMember_DS> mapMember = new HashMap<Byte,S_port_ChatClientMember_DS>();
public static void main(String[] args) {
new ChatServer().start();
} public static int creatIndex(){
int MemberSystemIndex = ChatServer.Index++;
return MemberSystemIndex;
}            //“C端用户的其他Socket请求的"交给线程处理"动作。
     public void start(){
     try {
     final String D_PORT_SERVER = "127.0.0.1";
     final String S_PORT_SERVER = "127.0.0.1";
     final String C_PORT_CLIENT = "127.0.0.1";
     Arrays.fill(LocalMemberonline, 0);
     // TODO Auto-generated method stub
             File f=new File("D://MyDoc//Chatlog.txt");
     Socket s4 = new Socket(D_PORT_SERVER,9999);
     ss1 = new ServerSocket(8888,50);
         } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
     while(true){
              //创建绑定到端口8888的ServerSocket对象
try {
so1 = ss1.accept();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(so1+"|||---");
              System.out.println("服务器正在对8888端口进行监听");
                 //服务器循环接受客户端的请求,为不同的客户端提供服务
         InputStream in; 
        
try {
in = so1.getInputStream();
         BufferedReader buffReder = new BufferedReader(new InputStreamReader(in));
         condition = buffReder.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
              switch(condition){
              case 0:
              {
              ManageTheChannel0ConfirmandSaveDS m0 = new ManageTheChannel0ConfirmandSaveDS(so1,"Thread0");
              m0.start();
              break;
              }
              case 1:
              {
              ManageTheChannel1SendInfo m1 = new ManageTheChannel1SendInfo(so1,"Thread1");
              m1.start();
              break;
              }
              case 2:
              {
              ManageTheChannel2ExitSysGivOrderNum m2 = new ManageTheChannel2ExitSysGivOrderNum(so1,"Thread2");
              m2.start();
              break;
              }
              case 3:
              {
             
              }
              }
     }
     }
}
     弟我的上面的代码,希望能够得到高手的回答:
     怎么排查掉弟我贴出的图中第32行和第24行代码中的运行时错误...?
     在线静候高手的点拨!!
     一百分奉上!!
                                                                一位日日夜夜向着理想奔跑的筑梦者
                                                                2013年8月16日晚上11点32分星期五聊天工具Java CS结构聊天系统Java源代码调试Java SE网络编程CS结构聊天程序调错

解决方案 »

  1.   

    你这个代码也不全,也不好猜啊
    socket一时半会也将不清楚
    这个是讲socket基础的,里面讲的还是很清楚的。希望对你有帮助哈
      

  2.   

    http://developer.51cto.com/art/200902/108179.htm
    地址都忘发了
      

  3.   

    你的S端的代码96行
    Socket s4 = new Socket(D_PORT_SERVER,9999);好像没用到过
    删掉再试试