网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.如何更改Netbeans中选项卡的名称.
.Java 2中的MVC设计模式.
.一些面向对象的设计法则(1).
.使用MIDP2.0开发游戏(6)设计Clock.
.Eclipse快速上手指南之使用CVS.
.Java中的等式.
.Java开发为什么需要UML?.
.java之旅(8)复用类 (续).
.我找到一个最简单的hibernate入门.
.要进入Java殿堂必须知道的名词.
.事件处理中UI的刷新问题(笔记体小.
.通过java提供的URL类包读取网上的.
.J2EE的概念.
.取得一个透明颜色.
.通过WebService实现Java与.Net互.
.Java程序编码规范!不仅仅是规范,.
.用JAR发布JAVA应用程序.
.软件开发规范.
.propertyIsEnumerable 属性.
.用JAVA实现线程等待提示框.

java与c/c++进行socket通信的一些问题(2)

发表日期:2008-1-5



  本部分提出另外一种做法, 供参考。


import Java.net.*;
import java.io.*;

/**
* 与C语言通信(java做Client,c/c++做Server,传送一个结构)
* @author kingfish
* @version 1.0
*/
public class Employee2 {
private String name;
private int id;
private float salary;

/**
* 将int转为低字节在前,高字节在后的int
*/
private static int toLH(int in) {
int out = 0;
out = (in & 0xff) << 24;
out = (in & 0xff00) << 8;
out = (in & 0xff0000) >> 8;
out = (in & 0xff000000) >> 24;
return out;
}

/**
* 将float转为低字节在前,高字节在后的int
*/
private static int toLH(float f) {
return toLH(Float.floatToRawIntBits(f));
}

/**
* 构造并转换
*/
public Employee2(String name, int id, float salary) {
this.name = name;
this.id = id;
this.salary = salary;
}

/**
* 取得名字,定长byte数组
*/
public byte[] getName() {
byte[] b = new byte[20];
System.arraycopy(name.getBytes(), 0, b, 0, name.getBytes().length);
return b;
}

/**
* 取得编号(低字节在前)
*/
public int getId() {
return toLH(id);
}

/**
* 取得工资(低字节在前)
*/
public int getSalary() {
return toLH(salary);
}

/**
* 发送测试
*/
public static void main(String[] args) {
try {
Employee2 p = new Employee2("kingfish", 123456789, 8888.99f);

Socket sock = new Socket("127.0.0.1", 8888);
DataOutputStream dos = new DataOutputStream(sock.getOutputStream());
dos.write(p.getName());
dos.writeInt(p.getId());
dos.writeInt(p.getSalary());
sock.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
} //end

-----------------------------------------------------------------------------------------------------

如有任何问题,请指正!

kingfish
上一篇:Java与TCP 人气:1311
下一篇:java与c/c++进行socket通信的一些问题(1) 人气:1280
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐