在线等待,短信通讯的socket程序BUG,请高手帮我查询,贴出全部源码

djpsunday 2004-05-10 11:55:44
入口类如下:

package testmt2;
import java.io.*;
import java.net.*;
import java.util.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class SasterServer {
public SasterServer() {
}
public static void main(String[] args){

multiServertestmt server=new multiServertestmt(8006);//调用服务器程序建立与上一级ICP的连接
try{server.newaccept();}catch(IOException e){e.printStackTrace();}
//并接受数据。



//PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(server.getOutputStream())),true);
//Object mt=server.getClass().forName("testmtthread1");
String str1=server.str1;//读取服务器数据并用变量保存
String str2=server.str2;//读取服务器数据并用变量保存
String str3=server.str3;//读取服务器数据并用变量保存
String str4=server.str4;//读取服务器数据并用变量保存
String str5=server.str5;//读取服务器数据并用变量保存
String str6=server.str6;//读取服务器数据并用变量保存
String str7=server.str7;//读取服务器数据并用变量保存
//Date now=new Date();
String str8=server.str8;//读取服务器数据并用变量保存
boolean str9=false;//处理的结果

totle_operation totle=new totle_operation();//判断要发送用户上行来的信息的对象
boolean IS_1888=totle.panduan(server.str4);

//dba db=new dba();
//db.open();
if(IS_1888){
operation_1888 new1888=new operation_1888();//将记录插入数据库
new1888.insert(str1,str2,str3,str4,str5,str6,str7,str8,str9);
client client1=new client("210.192.111.171",8006);//将客户下行的信息建立新的连接,返回给下一级ICP
try{client1.newaccept();}catch(IOException e){

e.printStackTrace();
System.err.println(e);
}
client1.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);
System.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);

new1888.insert(client1.str1,client1.str2,client1.str3,client1.str4,client1.str5,
client1.str6,client1.str7,client1.str8,client1.str9,client1.str10,
client1.str11,client1.handle_result);//将下一级ICP返回的信息记录插入数据库
client client2=new client("219.238.232.109",8006);//调用客户端程序将信息下行返回给上一级ICP
client2.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);
System.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);

// operation_1888 newoperation=new operation_1888();

}
else{
operation_8886 new8886=new operation_8886();//注释同上
new8886.insert(str1,str2,str3,str4,str5,str6,str7,str8,str9);
client client1=new client("210.192.111.171",8006);
//client1.out=null;
client1.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);
System.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);

new8886.insert(client1.str1,client1.str2,client1.str3,client1.str4,client1.str5,
client1.str6,client1.str7,client1.str8,client1.str9,client1.str10,
client1.str11,client1.handle_result);
client client2=new client("219.238.232.109",8006);
client1.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);
System.out.println("AODU\n"+server.str1+"\n"+server.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+server.str3+"\n"+server.str4+"\n"+
server.str5+"\n"+server.str7);

}

////dba db=new dba();
//String tt=mt.toString();

}

}
...全文
71 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
myte 2004-05-11
  • 打赏
  • 举报
回复
mark
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
我一运行入口类就出现如下错误;
java.lang.NullPointerException

at testmt2.SasterServer.main(SasterServer.java:78)

Exception in thread "main" serversocketServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8006]

连接中

驱动程序有错误com.microsoft.jdbc.sqlserver.SQLServerDriver

查询有错误No suitable driver
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
判断数据库操作类:
package testmt2;
import java.net.*;
import java.io.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class totle_operation {
String str=null;
// String sub_str=null;
public totle_operation() {
//this.str=str1;
}
boolean Is_1888=false;
public boolean panduan(String str2){

str=str2;
if(str==null){
return Is_1888;
}
String sub_str=str.substring(5,str.length()+1);
if(sub_str=="1888"){
Is_1888=true;
}
return Is_1888;
}

}


数据库操作类:
package testmt2;
import java.sql.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class operation_1888 {
public operation_1888() {
}

/*public String getUserInfo(String username,String id)
{
String sql = "select username,id from user where username='"+username+"' and id="+id;
dba db = new dba();
db.open();
ResultSet rs = db.executeQueryA(sql);
try
{
if (rs.next()) {
db.close();
return "ok";
}
else {
db.close();
return "no";
}
}catch(Exception e){db.close();}
db.close();
return "ok";
}
*/

public void insert (String ICPID,String ICPPass,String SrcTermID,
String DesTermID, String MsgFormat,
String Msglength, String SendMsg,String handle_time,
boolean handle_result)
{
String sql = "insert user_1888(ICPID,ICPPass,SrcTermID,DesTermID,MsgFormat,"+
"Msglength,SendMsg,handle_time,handle_result) values('"+
ICPID+"','"+ICPPass+"','"+SrcTermID+"','"+DesTermID+"','"+MsgFormat+"','"+
Msglength+"','"+SendMsg+"','"+handle_time+"','"+handle_result+"')";
dba db1 = new dba();

db1.GetRs(sql);
//db1.close();
}
public void insert (String ICPNAME,String ICPID,String ICPPass,String ServiceID,
String FreeType,String FreeCode,String SrcTermID,
String DesTermID, String MsgFormat,
String SendMsg,String handle_time,
boolean handle_result)
{
String sql = "insert master_1888(ICPNAME,ICPID,ICPPass,ServiceID,FreeType,"+
"FreeCode,SrcTermID,DesTermID,MsgFormat,"+
"SendMsg,handle_time,handle_result) values('"+ICPNAME+"','"+ICPID+"','"+ICPPass+
"','"+ServiceID+"','"+FreeType+"','"+FreeCode+"','"+SrcTermID
+"','"+DesTermID+"','"+MsgFormat+"','"+SendMsg+"','"+handle_time+
"','"+handle_result+"')";
dba db1 = new dba();

db1.GetRs(sql);
//db1.close();
}





}
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
噢,刚才贴不上来的
qiuyc 2004-05-10
  • 打赏
  • 举报
回复
totle_operation
还有

operation_1888


在什么地方啊

找不到
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
数据库连接类如下:package testmt2;

import java.io.*;
import java.net.*;
import java.util.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class client {
public static int port;//要连接的服务器端号
public static String ip;//要连接的服务器地址
// public Socket socket1;//建立连接对象
//private ServerSocket serversocket;
public BufferedReader in;//建立输入输出流
public PrintWriter out;

public String str1=null;//将流变量初始化
public String str2=null;
public String str3=null;
public String str4=null;
public String str5=null;
public String str6=null;
public String str7=null;
public String str8=null;
public String str9=null;
public String str10=null;
public String str11=null;//将流变量初始化
public boolean handle_result=false;
public client(String IP,int port1) {
port=port1;
ip=IP;
}

public void newaccept() throws IOException{
Socket socket1=new Socket(ip,port);//建立连接
System.out.println("socket"+socket1);//输出连接对象测试
if(socket1.isConnected()==true)
{System.out.println("连接中");
//break;
}

try{

in=new BufferedReader(new InputStreamReader(socket1.getInputStream()));//打开输入输出流
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream())),true);
/* multiServertestmt newmt=new multiServertestmt(8006);//
out.println("AODU\n"+newmt.str1+"\n"+newmt.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+newmt.str3+"\n"+newmt.str4+"\n"+
newmt.str5+"\n"+newmt.str7);
System.out.println("AODU\n"+newmt.str1+"\n"+newmt.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+newmt.str3+"\n"+newmt.str4+"\n"+
newmt.str5+"\n"+newmt.str7);
*/ boolean handle_result=true;

str1=in.readLine();
Thread.sleep(1);
str2=in.readLine();
Thread.sleep(1);
str3=in.readLine();
Thread.sleep(1);
str4=in.readLine();
Thread.sleep(1);
str5=in.readLine();
Thread.sleep(1);
str6=in.readLine();
Thread.sleep(1);
str7=in.readLine();
Thread.sleep(1);
str8=in.readLine();
Thread.sleep(1);
str9=in.readLine();
Thread.sleep(1);
str10=in.readLine();
Thread.sleep(1);
Date now=new Date();
str11=now.toString();
/* String tmps=null;
int eid=0;
while(tmps==null && eid<200){
tmps=in.readLine();//从SOCKET读取一行
eid++;
Thread.sleep(1);
}
System.out.println("反馈为:"+tmps);

out.println(newmt.str1+"\n");
out.println(newmt.str2+"\n");
out.println("z00859\n");
out.println("01\n");
out.println("00\n");
out.println(newmt.str3+"\n");
out.println(newmt.str4+"\n");
out.println(newmt.str5+"\n");
out.println(newmt.str7);
*///out.println(newmt.str1);
//out.println(newmt.str1);

// try{
// while(true){
//Socket socket1=s.accept();
/* try{

}catch(IOException e){
socket1.close();
}*/
}catch(Exception e){
System.out.println(e);
boolean handle=false;
}
// catch(UnknownhostException e){

//}
finally{
socket1.close();
in.close();
out.close();
}

System.out.println("send over");
}

// if(client!=null) client.close();


//}

}



djpsunday 2004-05-10
  • 打赏
  • 举报
回复
客户端程序如下:

package testmt2;

import java.io.*;
import java.net.*;
import java.util.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class client {
public static int port;//要连接的服务器端号
public static String ip;//要连接的服务器地址
// public Socket socket1;//建立连接对象
//private ServerSocket serversocket;
public BufferedReader in;//建立输入输出流
public PrintWriter out;

public String str1=null;//将流变量初始化
public String str2=null;
public String str3=null;
public String str4=null;
public String str5=null;
public String str6=null;
public String str7=null;
public String str8=null;
public String str9=null;
public String str10=null;
public String str11=null;//将流变量初始化
public boolean handle_result=false;
public client(String IP,int port1) {
port=port1;
ip=IP;
}

public void newaccept() throws IOException{
Socket socket1=new Socket(ip,port);//建立连接
System.out.println("socket"+socket1);//输出连接对象测试
if(socket1.isConnected()==true)
{System.out.println("连接中");
//break;
}

try{

in=new BufferedReader(new InputStreamReader(socket1.getInputStream()));//打开输入输出流
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream())),true);
/* multiServertestmt newmt=new multiServertestmt(8006);//
out.println("AODU\n"+newmt.str1+"\n"+newmt.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+newmt.str3+"\n"+newmt.str4+"\n"+
newmt.str5+"\n"+newmt.str7);
System.out.println("AODU\n"+newmt.str1+"\n"+newmt.str2+"\n"+
"z00859\n"+"01\n"+"00\n"+newmt.str3+"\n"+newmt.str4+"\n"+
newmt.str5+"\n"+newmt.str7);
*/ boolean handle_result=true;

str1=in.readLine();
Thread.sleep(1);
str2=in.readLine();
Thread.sleep(1);
str3=in.readLine();
Thread.sleep(1);
str4=in.readLine();
Thread.sleep(1);
str5=in.readLine();
Thread.sleep(1);
str6=in.readLine();
Thread.sleep(1);
str7=in.readLine();
Thread.sleep(1);
str8=in.readLine();
Thread.sleep(1);
str9=in.readLine();
Thread.sleep(1);
str10=in.readLine();
Thread.sleep(1);
Date now=new Date();
str11=now.toString();
/* String tmps=null;
int eid=0;
while(tmps==null && eid<200){
tmps=in.readLine();//从SOCKET读取一行
eid++;
Thread.sleep(1);
}
System.out.println("反馈为:"+tmps);

out.println(newmt.str1+"\n");
out.println(newmt.str2+"\n");
out.println("z00859\n");
out.println("01\n");
out.println("00\n");
out.println(newmt.str3+"\n");
out.println(newmt.str4+"\n");
out.println(newmt.str5+"\n");
out.println(newmt.str7);
*///out.println(newmt.str1);
//out.println(newmt.str1);

// try{
// while(true){
//Socket socket1=s.accept();
/* try{

}catch(IOException e){
socket1.close();
}*/
}catch(Exception e){
System.out.println(e);
boolean handle=false;
}
// catch(UnknownhostException e){

//}
finally{
socket1.close();
in.close();
out.close();
}

System.out.println("send over");
}

// if(client!=null) client.close();


//}

}

djpsunday 2004-05-10
  • 打赏
  • 举报
回复
接上服务器端程序如下:
package testmt2;
import java.io.*;
import java.net.*;
import java.util.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class multiServertestmt {
private static int port;
// public static testmtthread1 mt;
public BufferedReader in;
public PrintWriter out;
public String str1=null;
public String str2=null;
public String str3=null;
public String str4=null;
public String str5=null;
public String str6=null;
public String str7=null;
//public String str8=null;
// public String str9=null;
Date now=new Date();
public String str8=now.toString();
public multiServertestmt(int port1) {
this.port=port1;
}
public void newaccept() throws IOException{

ServerSocket s=new ServerSocket(port);
System.out.println("serversocket"+s);
try{
while(true){
if(s.isBound()==true){
System.out.println("连接中");
break;
}
try{Socket socket1=s.accept();
in=new BufferedReader(new InputStreamReader(socket1.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream())),true);

String str=in.readLine();
//if(str.equals("end")) break;
System.out.println("echoing:"+str);

str1=in.readLine();
System.out.println("second:"+str1);
str2=in.readLine();
System.out.println("third:"+str2);
str3=in.readLine();
System.out.println("fourth:"+str3);
str4=in.readLine();
System.out.println("fourth:"+str4);
str5=in.readLine();
System.out.println("fourth:"+str5);
str6=in.readLine();
System.out.println("fourth:"+str6);
str7=in.readLine();
System.out.println("serven:"+str7);
if((in.readLine()).equalsIgnoreCase("BYE"))
break;
out.println("ok");
}catch(IOException e){
//socket1.close();
System.out.println(e);
}
/* try{
new testmtthread1(socket1);




}catch(IOException e){
socket1.close();
}*/


}
}finally{
/// in.close();
// out.close();
s.close();
}
}


}
jk3278jk 2004-05-10
  • 打赏
  • 举报
回复
给分!
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
package testmt2;
import java.net.*;
import java.sql.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class operation_8886 {
public operation_8886() {
}

/* public String getUserInfo(String username,String id)
{
String sql = "select username,id from user where username='"+username+"' and id="+id;
dba db = new dba();
db.open();
ResultSet rs = db.executeQueryA(sql);
try
{
if (rs.next()) {
db.close();
return "ok";
}
else {
db.close();
return "no";
}
}catch(Exception e){db.close();}
db.close();
return "ok";
}
*/

public void insert (String ICPID,String ICPPass,String SrcTermID,
String DesTermID, String MsgFormat,
String Msglength, String SendMsg,String handle_time,boolean handle_result )
{
String sql = "insert user_1888(ICPID,ICPPass,SrcTermID,DesTermID,MsgFormat,"+
"Msglength,SendMsg,handle_time,handle_result) values('"+
ICPID+"','"+ICPPass+"','"+SrcTermID+"','"+DesTermID+"','"+MsgFormat+"','"+
Msglength+"','"+SendMsg+"','"+handle_time+"','"+handle_result+"')";
dba db1 = new dba();
// db1.open();
db1.GetRs(sql);
//db1.close();
}


public void insert (String ICPNAME,String ICPID,String ICPPass,String ServiceID,
String FreeType,String FreeCode,String SrcTermID,
String DesTermID, String MsgFormat,
String SendMsg,String handle_time,
boolean handle_result)
{
String sql = "insert master_1888(ICPNAME,ICPID,ICPPass,ServiceID,FreeType,"+
"FreeCode,SrcTermID,DesTermID,MsgFormat,"+
"SendMsg,handle_time,handle_result) values('"+ICPNAME+"','"+ICPID+"','"+ICPPass+
"','"+ServiceID+"','"+FreeType+"','"+FreeCode+"','"+SrcTermID
+"','"+DesTermID+"','"+MsgFormat+"','"+SendMsg+"','"+handle_time+
"','"+handle_result+"')";
dba db1 = new dba();
//db1.open();
db1.GetRs(sql);
//db1.close();
}




}
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
我的机器登不上MSN的好像的端口让TOMCAT给占用了我的QQ是191945951,
qiuyc 2004-05-10
  • 打赏
  • 举报
回复
我的是qiuyingc@hotmail.com
qiuyc 2004-05-10
  • 打赏
  • 举报
回复
你的MSN
在那个上面我看看

不一定会有多少帮助

我自己也做过着方面的

不过用的Oracle用的是JDBC驱动,没有这样的问题
qiuyc 2004-05-10
  • 打赏
  • 举报
回复
你那来的那个operation_1888里面dba方法啊

就是不通
还少个operation_8886,要不就是你写错
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
谁能说说哪个空指针的错误是怎么形成的
djpsunday 2004-05-10
  • 打赏
  • 举报
回复
你没有把三个驱动包放在jdk1.4\lib目录下吧
qiuyc 2004-05-10
  • 打赏
  • 举报
回复
找不到驱动:)
完成端口通讯服务器(IOCP Socket Server)设计 (六)功能强大的IOCP Socket Servre模块例程源码 Copyright © 2009 代码客(卢益贵)版权所有 QQ:48092788 源码博客:http://blog.csdn.net/guestcode 一、声明 版权声明: 1、通讯模块代码版权归作者所有; 2、未经许可不得全部或部分用于任何项目开发; 3、未经许可不得部分修改后再利用源码。 免责声明: 1、 由于设计缺陷或其它Bug造成的后果,作者不承担责任; 2、未经许可的使用作者不提供任何技术支持服务。 权利和义务: 1、任何获得源码并发现Bug的个人或单位均有义务向作者反映; 2、作者保留追究侵权者法律责任的权利。 二、开发背景 部分代码由前项目分离而来,尚未有应用考验,但对于初学者学习和进阶有很大助。性能上尚未有定论,但应该不会令你失望。 三、功能说明 1、可以关闭Socket的Buffer; 2、可以关闭MTU(不等待MTU满才发送); 3、可以多IP或多端口监听; 4、可以重用socket(主动关闭除外); 5、可以0缓冲接收(Socket的Buffe = 0时,避免过多的锁定内存页); 6、可以0缓冲连接(客户端仅连接,不一定立即发数据); 7、可以条件编译: a、是否使用内核Singly-linked lists; b、是否使用处理线程(工作线程和处理线程分开); c、是否使用内核锁来同步链表。 8、可以实现集群服务器模式的通讯(有客户端socket); 9、可以单独设置每个连接的Data项来实现连接和Usernfo的关联; 10、每个线程有OnBegin和OnEnd,用于设置线程独立的对象(数据库会话对象); 11、可以提供详细的运行情况,便于了解IOCP下的机制,以及进行调试分析; 12、可以发起巨量连接和数据(需要硬件配置来支持)。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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