java和delphi的socket的杂交问题(30分)

  • 主题发起人 主题发起人 wzgss
  • 开始时间 开始时间
W

wzgss

Unregistered / Unconfirmed
GUEST, unregistred user!
我用“健康”的java的serverSocket与clientSocket分别
和delphi的serverSocket与clientSocket进行杂交。发现
当delphi的clientSocket与java的serverSocket杂交时,
连接没问题,发送的字符串好像变了。当delphi的serverSocket
与java的clientSocket连接时,server端接受到connect事件。
但客户端就死在那里。
我是java新手,程序是从网上下来的。请分析一下原因。
 
应该没问题
可能是网络字节顺序
delphi的要转换一下
 
关键的代码还是要贴出来才能诊断
 
我看也是
 
我用过的,DELPHI的SERVER,JAVA的CLIENT,一切正常,已经连续跑了半年
 
import java.io.*;
import java.net.*;
public class chatClient {
public static void main (String[] str)
{
String serverName="";
if (str.length>=1) { serverName=str[0];}
else
{
System.out.println("You must provide a server Name you want to connect to,");
System.out.println("And run your program by input indo
s Prompt Like this:");
System.out.println("java chatClient serverName");
System.exit(0);
}
Socket cltSoc;
ObjectOutputStream objOut = null;
ObjectInputStream objIn = null;
try
{
InetAddress address = InetAddress.getByName(serverName);
cltSoc = new Socket(address,6666);
objOut= new ObjectOutputStream(cltSoc.getOutputStream());
objIn = new ObjectInputStream(cltSoc.getInputStream());
System.out.println("Connected to the server successfully...");
System.out.println("If you want to exit this program, type 'QUIT' !");
}catch (Exception e) { System.exit(0);}
getMsg get = new getMsg(objIn);
get.start();
sendMsg send = new sendMsg(objOut);
send.
start();
}
}
///getMsg
class getMsg extends Thread
{
ObjectInputStream objIn;
public getMsg(ObjectInputStream in)
{ objIn = in;}
public void run(){
String strMsg="";
while(true)
{
try{
strMsg=(String)objIn.readObject();
System.out.println("The server said :"+strMsg);
if (strMsg.equalsIgnoreCase("quit")) System.exit(0);
}catch(Exception e) {}
}
}
}
///sendMsg
class sendMsg extends Thread
{
ObjectOutputStream objOut;
public sendMsg(ObjectOutputStream out)
{ objOut=out;}
public void run()
{
String strMsg="";
while(true)
{
try
{
strMsg=(new BufferedReader(new InputStreamReader(System.in))).readLine();
objOut.writeObject(strMsg);
if (strMsg.equalsIgnoreCase("quit")) System.exit(0);
}catch(Exception e){}
}
}
}
 
那delphi的呢
 
找个NetXRay或者Sniffer,自己监听一下socket通讯,大致可以知道是什么问题。
要做到有的放矢。
他们在download.51soft.com可以下载。
 
delphi的还用说吗?
 
>delphi的连接没问题,发送的字符串好像变了
所以我想看看delphi
 
come on,do
n't use writeObject, ReadObject, use Wirte, Read,
 
>>>我用过的,DELPHI的SERVER,JAVA的CLIENT,一切正常,已经连续跑了半年
有趣!是什么应用?
俺写的东西往往是相反的!
呵呵!
 
嘿嘿,见笑了
MIDAS的服务器,JAVA的WEB,浏览器里改了东西就要告诉MIDAS,所以。。。
 
接受答案了.
 
后退
顶部