本帖最后由 yangxin540 于 2013-9-8 23:40 编辑
我按照毕老师代码写的,但是我这却报出了java.net.SocketException,我查了下API说是:底层协议中存在错误,如 TCP 错误。异常在服务端的Socket socket = ss.accept();发生。不解,求助啊这是客户端- public class TCPClientDemo {
- public static void main(String[] args) throws Exception {
- //1、创建客户端的socket服务,指定目的主机和端口
- Socket socket = new Socket("192.168.229.1", 10003);
-
- //2、获取socket的输出流,用于发送数据
- OutputStream out = socket.getOutputStream();
- //3、发送数据
- out.write("tcp client send message come on".getBytes());
-
- socket.close();
- }
- }
复制代码 这是服务端:- public class TCPServerDemo {
- public static void main(String[] args) throws IOException{
- //建立服务端的socket服务,并监听一个端口
- ServerSocket ss = new ServerSocket(10003);
-
- while(true){
- //通过accept方法获取连接过来的客户端对象
- Socket socket = ss.accept();<font color="#ff0000">//<font color="#ff0000">就是这句话报出来的异常,很疑惑,求解释</font></font>
-
- String ip = socket.getInetAddress().getHostAddress();
- System.out.println(ip + "......connected");
-
- //获取客户端发过来的数据,那么要使用客户端对象的读取流来获取数据
- InputStream in = socket.getInputStream();
-
- byte[] buf = new byte[1024];
- int len = in.read(buf);
- System.out.println(new String(buf,0,len));
-
- socket.close();//关闭客户端
- ss.close();//关闭服务端,可选的操作
- }
- }
- }
复制代码 |