加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

客户端通过socket向服务器端的指定端口发送数据

(2017-03-29 17:44:43)
分类: Java
客户端通过socket向服务器端的指定端口发送数据,最初一直报错:
每当客户端发送数据时,服务器端就报下面的错误:
E:\javacode>java MonitorPort
Exception in thread "main" java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
        at sun.nio.cs.StreamDecoder.read(Unknown Source)
        at java.io.InputStreamReader.read(Unknown Source)
        at java.io.BufferedReader.fill(Unknown Source)
        at java.io.BufferedReader.readLine(Unknown Source)
        at java.io.BufferedReader.readLine(Unknown Source)
        at MonitorPort.main(MonitorPort.

后来经过查找,发现把客户端加上flush和close就好了
MonitorPort .java
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class MonitorPort {

public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(80);  //监听8800端口
while(true){
Socket socket = serverSocket.accept();//等待客户连接
InputStream socketIn = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socketIn));
String msg = null;
while ((msg=bufferedReader.readLine())!=null) {
System.out.println("接收到信息:" + msg);
}
}
}
}

SendDataToServerPort.java

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class SendDataToServerPort {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("192.168.10.35",80);
//向服务器端程序发送数据
OutputStream outputStream = socket.getOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write("hello server, can you receiver my data?");
bufferedWriter.flush();
bufferedWriter.close();
socket.close();
System.out.println("finish send data!!");
}
}




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有