linux下java程序与C语言程序通过SOCKET通信的简单例子

linux下java程序与C语言程序通过SOCKET通信的简单例子

ID:43325102

大小:74.74 KB

页数:5页

时间:2019-09-30

linux下java程序与C语言程序通过SOCKET通信的简单例子_第1页
linux下java程序与C语言程序通过SOCKET通信的简单例子_第2页
linux下java程序与C语言程序通过SOCKET通信的简单例子_第3页
linux下java程序与C语言程序通过SOCKET通信的简单例子_第4页
linux下java程序与C语言程序通过SOCKET通信的简单例子_第5页
资源描述:

《linux下java程序与C语言程序通过SOCKET通信的简单例子》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、[09.04.14]linux下java程序与C语言程序通过SOCKET通信的简单例子今天上午实验了java程序与c语言程序通过socket进行通信。由于没学过java,因此只是编写了C语言端的代码,java端的代码是从网上别的文章中找的,经过少量修改后与C语言端程序通信成功。本例中C语言端作为服务器Java端作为客户端代码如下:★★★★★★★★★★★★★★★ifserverprogram★★★★★★★★★★★★★★★★#includeincludeincludeinclude

2、.h>includeinclude#include#includeintsockfd3newfd;void*read_socket();intmain(){intret;pthread_tread_tid,write_tid;structsockaddrinserveraddr;serveraddr.sini_family=AF_lNET;/*设置域为IPV4*/server_addr.sin_addr.s_addr=INADDR_ANY;/*绑定到INADDR_AN丫地址

3、*/server_addr.sin_port=htons(5678);/*通信端口号为5678,注意这里必须要用htons函数处理一下,不能直接写5678,否则可能会连不上*/sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd<0){printf("调用socket函数建立socket描述符出错!¥nn);exit(1);printf('调用socket函数建立socket描述符成功!¥nn);ret=bind(sockfd,(structsockaddr*)(&server_addr),sizeof(server_ad

4、dr));perror(”server”);if(ret<0){printf(”调用bind函数绑定套接字与地址出错!¥n“);exit(2);}printf(”调用bind函数绑定套接字与地址成功!¥”');ret=listen(sockfd,4);if(ret<0){printf("调用listen函数出错,无法宣告服务器已经可以接受连接!¥n”);exit⑶;}printf(“调用listen函数成功,宣告服务器已经可以接受连接请求!¥n”);newfd=accept(sockfd5NULL,NULL);/*newfd连接到调用connect的客户端*/i

5、f(newfd<0){printf("调用accept函数出错,无法接受连接请求,建立连接失败!¥nM);exit⑷;}printf(“调用accept函数成功,服务器与客户端建立连接成功!¥nH);r服务器端建立一个线程,负责从socket读取数据,当然此处并不一定非要建立一个新线程,直接在原线程中写也可以**/pthread_create(&read_tid,NULL,read_socket,NULL);/*****★*****★*********令原线程睡眠************************/while(1)sleep(10000);void

6、*read_socket(){intrecv_nunvecv_num_total=0;charrecv_buf[50];while(1){memset(recv_buf,0,sizeof(recv_buf));/*清空一下recv_buf缓存区*7recv_num=recv(newfd,recv_buf,26,0);if(recv_num<0)printf(”服务器端:调用recv接收失败!¥n");elseif(recv_num>0){recvnumtotal+=recvnum;printf(”服务器端:调用recv接收成功!本次接收到%d个字节,内容为¥%s

7、¥”。共收到%(1个字节的数据o¥n",recv_num,recv_buf,recv_num_totaI);sync();}els引*收到数据为0,表明服务器与客户端的连接已经中断*/{printf(“服务器端:与客户端的连接已中断当前共收到%d个字节的数据。服务器将再次等待客户端的连接o¥nH,recv_num_total);newfd=accept(sockfd,NULL,NULL);/*当客户端退出后,再次开始接收客户端的连接*/}sleep(1);*****************Clientprogram★★★★★★★★★★★★★★★★*/import

8、java.net.*;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。