怎么用java传送7个16进制无符号数?
怎么用java传送7个16进制无符号数?使用socket 问题点数:100、回复次数:14Top
1 楼Kklee(敌不动,我不动;敌动,我先动)回复于 2002-12-30 09:28:34 得分 0
另外,服务端接受到数据后发送一个应答到客户端
最好能给出源码!Top
2 楼Kklee(敌不动,我不动;敌动,我先动)回复于 2002-12-30 15:29:55 得分 0
没有人吗?Top
3 楼Kklee(敌不动,我不动;敌动,我先动)回复于 2002-12-30 16:03:25 得分 0
有人吗?Top
4 楼sanriver(river)回复于 2002-12-30 17:11:21 得分 40
client
import java.net.*;
import java.io.*;
import java.lang.*;
public class myClient{
public static void main(String args[]){
String host = "172.16.*.*";
Socket socket;
String s="zhaozj@hoten.com";
String len;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
DataOutputStream DOS;
PrintStream PS;
try{
//向主机名为args[0]的服务器申请连接
//注意端口号要与服务器保持一致:4321
socket=new Socket(host,9000);
System.out.println("client ok");
System.out.println("************************************************");
System.out.println("");
//获得对应socket的输入/输出流
Is=socket.getInputStream();
Os=socket.getOutputStream();
//建立数据流
DIS=new DataInputStream(Is);
DOS=new DataOutputStream(Os);
PS=new PrintStream(Os);
DataInputStream in=new DataInputStream(System.in);
while(true){
System.out.print("you say:");
s=in.readLine(); //读取用户输入的字符串
PS.println(s); //将读取得字符串传给server
//DOS.write(s.getBytes());
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
else
{
System.out.println("");
System.out.println("please wait server's message...");
System.out.println("");
}
s=DIS.readLine(); //从服务器获得字符串
System.out.println("server said:"+s); //打印字符串
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
}
//关闭连接
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
socket.close(); //关闭socket
}
catch(Exception e){
System.out.println("Error:"+e);
}
}
}
server
import java.net.*;
import java.io.*;
import java.lang.*;
public class myServer{
public static void main(String args[]){
ServerSocket server;
Socket socket;
String s;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
PrintStream PS;
try{
//在端口注册服务
server=new ServerSocket(9000);
socket=server.accept(); //监听窗口,等待连接
System.out.println("server ok");
System.out.println("************************************************");
System.out.println("");
//获得对应Socket的输入/输出流
Is=socket.getInputStream();
Os=socket.getOutputStream();
//建立数据流
DIS=new DataInputStream(Is);
PS=new PrintStream(Os);
DataInputStream in=new DataInputStream(System.in);
while(true){
System.out.println("");
System.out.println("please wait client's message...");
System.out.println("");
s=DIS.readLine(); //读入从client传来的字符串
System.out.println("client said:"+s); //打印字符串
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
System.out.print("you say:");
s=in.readLine(); //读取用户输入的字符串
PS.println(s); //将读取得字符串传给client
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
}
//关闭连接
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
socket.close(); //关闭sockey
}
catch(Exception e){
System.out.println("Error:"+e);
}
}
}Top
5 楼Kklee(敌不动,我不动;敌动,我先动)回复于 2002-12-30 17:17:04 得分 0
我想把7个16进制数放在数组中,怎么处理这7个16进制数呢?Top
6 楼Kklee(敌不动,我不动;敌动,我先动)回复于 2003-01-03 08:42:40 得分 0
我想把7个16进制数放在数组中,怎么处理这7个16进制数呢?Top
7 楼Kklee(敌不动,我不动;敌动,我先动)回复于 2003-01-03 13:39:08 得分 0
我想把7个16进制数放在数组中,怎么处理这7个16进制数呢?
我主要不知道怎么处理16进制数Top
8 楼pikaiyuan(p_k_y)回复于 2003-01-03 14:35:20 得分 15
你可以先把16进制数进行编码转化成base64或者是unicodeTop
9 楼xx8081(xiao)回复于 2003-01-03 15:58:20 得分 0
转换成字符串?Top
10 楼Kklee(敌不动,我不动;敌动,我先动)回复于 2003-01-03 16:29:57 得分 0
怎么转换?Top
11 楼888888888888(888888888888)回复于 2003-01-03 17:36:32 得分 0
楼上不是说了吗??Top
12 楼pureqi(pureqi)回复于 2003-01-20 23:57:38 得分 20
我想问题可能出在,要发送的16进制数可能比较特殊,比方含有0d('\n')字符,这样的话,你用readLine()函数读的数据就是错误的。我也正在找解决办法,有的话交流一下。Top
13 楼colors(第厘十秒)回复于 2003-01-21 08:29:26 得分 10
upTop
14 楼pureqi(pureqi)回复于 2003-01-21 22:50:48 得分 15
看来只能read(byte[])了,事先知道长度,到长度了就把STREAM给结了。Top




