java socket 二次发送_用Socket二次发送消息失败,怎么办?

本人对socket真的是小白级的,因为程序要求才硬着头皮写了个函数,结果第一次引用函数时,socket还能发送消息,但之后一直都被阻塞(?)了,直到我把整个程序关掉才发送出去。来这里看看有没有大侠可以解答一下我的问题。

以下是该函数代码:

Status status=new Status();

InetAddress addr;

addr = InetAddress.getByName(HOST_NAME);

Socket mSocket;

mSocket = new Socket(addr, PORT_NO);

out = mSocket.getOutputStream();

mFlag = true;

try

{

Area a = new Area();

byte typeChosen=(byte) 0xff;

byte [] output=new byte[10];

//**中间省略output的内容**

out.write(output);

InputStream mInput = null;

byte[] buffer = new byte[65536];

int size = -1;

boolean flag=true;

while (flag) {

try {

// 此处为测试代码,测试代码每次运行能成功执行。

//所以问题应该不在parseFrontEndMsg函数中,所以此函数我就不放上来了。

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FOCAS(Fanuc Open CNC API Specification)是由日本发那科(Fanuc)公司开发的一种CNC机床通信协议。FOCAS协议允许第三方开发者通过编程语言和软件开发工具来与Fanuc机床进行通信和控制。FOCAS还包括了对数据采集功能的支持,允许用户通过编程的方式获取机床的实时数据。 Java是一种跨平台的编程语言,具有广泛的应用性和开发工具的支持。通过Java语言进行FOCAS二次开发,可以方便地实现对Fanuc机床的数据采集。 在进行FOCAS二次开发的过程中,首先需要根据Fanuc提供的API文档了解FOCAS协议的通信方式和数据结构。然后,可以使用Java提供的Socket编程接口,与Fanuc机床建立TCP/IP连接,并通过FOCAS协议发送和接收数据。 对于数据采集功能,可以通过FOCAS协议中定义的函数来获取机床的各种实时数据,如坐标轴位置、刀具信息、工艺参数等。通过Java的网络编程和数据处理功能,可以将这些数据保存到本地文件或者发送到其他系统进行进一步分析和处理。 在FOCAS二次开发中,还可以利用Java的多线程机制,实现与多台Fanuc机床的并发通信。通过使用多线程,可以同时获取多台机床的数据,并进行实时监控和控制。 总之,FOCAS二次开发结合Java语言可以实现对Fanuc机床的数据采集和控制。Java作为一种强大而灵活的编程语言,为FOCAS开发提供了丰富的工具和库支持,使得二次开发工作更加高效和便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值