java socket 连接异常_java.net.SocketException:软件导致连接中止:套接字写错误

参见英文答案 >

Official reasons for “Software caused connection abort: socket write error”                                    11

我正在尝试将图像从Java桌面应用程序发送到J2ME应用程序.问题是我得到这个例外:

java.net.SocketException: Software caused connection abort: socket write error

我在网上看了四周,虽然这个问题并不罕见,但我无法找到具体的解决方案.在传输之前,我将图像转换为字节数组.这些是分别在桌面应用程序和J2ME上找到的方法

public void send(String ID, byte[] serverMessage) throws Exception

{

//Get the IP and Port of the person to which the message is to be sent.

String[] connectionDetails = this.userDetails.get(ID).split(",");

Socket sock = new Socket(InetAddress.getByName(connectionDetails[0]), Integer.parseInt(connectionDetails[1]));

OutputStream os = sock.getOutputStream();

for (int i = 0; i < serverMessage.length; i++)

{

os.write((int) serverMessage[i]);

}

os.flush();

os.close();

sock.close();

}

private void read(final StreamConnection slaveSock)

{

Runnable runnable = new Runnable()

{

public void run()

{

try

{

DataInputStream dataInputStream = slaveSock.openDataInputStream();

int inputChar;

StringBuffer results = new StringBuffer();

while ( (inputChar = dataInputStream.read()) != -1)

{

results.append((char) inputChar);

}

dataInputStream.close();

slaveSock.close();

parseMessage(results.toString());

results = null;

}

catch(Exception e)

{

e.printStackTrace();

Alert alertMsg = new Alert("Error", "An error has occured while reading a message from the server:\n" + e.getMessage(), null, AlertType.ERROR);

alertMsg.setTimeout(Alert.FOREVER);

myDisplay.setCurrent(alertMsg, resultScreen);

}

}

};

new Thread(runnable).start();

}

我通过LAN发送消息,当我发送短消息而不是图像时,我没有问题.此外,我使用wireshark,似乎桌面应用程序只发送部分消息.任何帮助将高度赞赏.此外,一切都适用于J2ME模拟器.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值