求解c代码转换为java代码

tangdao999 2011-12-06 01:35:41
1. 组装发送包函数:
int make_package(buf,len,end,sn)
unsigned char *buf; /*发送数据包体缓冲区指针*/
int len; /*发送数据包长度*/
int end; /*0:无后继包 1:有后继包*/
int sn; /*包序号*/
unsigned char *s; /*发送数据包缓冲区指针*/
char pkg_type; /* 包类型*/
char pkg_property; /* 包属性*/
{
unsigned long pkg_no;

s[0]=0xff;
s[1]=0xff;
s[2]=(len>>8)&0xff;
s[3]=len&0xff;
pkg_no = htonl((unsigned long)sn);
memcpy(s+4, (void *)&pkg_no, 4);
s[8]=(s[2]+s[3])&0xff;
s[9]=end;
s[10]= pkg_type;
s[11]= pkg_property;
memcpy(s+12,buf,len);
s[len+12]=0xff;
s[len+13]=0xff;

return(len);
}
2. 接收函数
int tcp_rcv_dsf(sock,buf,s,len,time_out)
int sock;
unsigned char *buf; /*包体数据缓冲区指针 */
char *s; /*包头数据缓冲区指针 */
int len; /*包长*/
{
int i,j;
unsigned char* ss;
char snBuf[5];
unsigned short bufLen;

if ((i=readdata(sock,s,12))<=0) {
printf("tcp_rcv_dsf read error! read bytes: %d\n", i);
return(-2);
}
snBuf[3] = s[4];
snBuf[2] = s[5];
snBuf[1] = s[6];
snBuf[0] = s[7];
memcpy(s+4,snBuf,4);
memset((char *)&bufLen, 0x00, 4);
((char*)&bufLen)[0] = s[2]&0xff;
((char*)&bufLen)[1] = s[3]&0xff;
bufLen = ntohs(bufLen);

len = bufLen;
j=len;
ss=buf;

while(j) {
i=readdata(sock,ss,j);
if (i<=0) {
write_log("tcp_rcv_dsf read ss error!");
return(-3);
}
j-=i;
ss+=i;
}

if ((i=readdata(sock,s+12,2))<=0) {
write_log("tcp_rcv_dsf read s+12 error!");
return(-2);
}
buf[len]=0x00;
return(len);
}

求解成java代码
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangdao999 2011-12-12
  • 打赏
  • 举报
回复
求解
??????
tangdao999 2011-12-09
  • 打赏
  • 举报
回复
没人知道怎么转吗????

67,513

社区成员

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

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