java与c/c++进行socket通信的一些问题(2)
生活随笔
收集整理的這篇文章主要介紹了
java与c/c++进行socket通信的一些问题(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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
?
總結
以上是生活随笔為你收集整理的java与c/c++进行socket通信的一些问题(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用DLL进行不同语言之间的调用
- 下一篇: java 与C++ 数据类型大小