初识Socket&ServerSocket
2014-08-22 11:49
302 查看
一开始自己编写,怎么都不成功,仔细对比了教程的,才发现问题,注意readLine()方法,没有输入,会一直等待。。。
package socketpts; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class TalkClient { public static void main(String[] args) throws UnknownHostException, IOException { try { Socket socket = new Socket("127.0.0.1", 4700); BufferedReader localInput = new BufferedReader(new InputStreamReader(System.in)); PrintWriter toServer = new PrintWriter(socket.getOutputStream()); BufferedReader fromServer = new BufferedReader(new InputStreamReader(socket.getInputStream())); String localLine; localLine = localInput.readLine(); while(!localLine.equals("bye")) { toServer.println(localLine); toServer.flush(); System.out.println("Client: " + localLine); // 等待来自服务器端的消息 System.out.println("Server: " + fromServer.readLine()); localLine = localInput.readLine(); } toServer.close(); fromServer.close(); socket.close(); } catch (Exception e) { System.out.println("Error" + e); } } }
package socketpts; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class TalkServer { public static void main(String[] args) { try { ServerSocket serversocket = null; try { serversocket = new ServerSocket(4700); } catch (Exception e) { System.out.println("can not listen to:" + e); } Socket socket = null; try { socket = serversocket.accept(); } catch (Exception e) { System.out.println("Error:" + e); } String localLine; BufferedReader fromClient = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter toClient = new PrintWriter(socket.getOutputStream()); BufferedReader localInput = new BufferedReader(new InputStreamReader(System.in)); // 执行一次之后再不执行 System.out.println("Client: " + fromClient.readLine()); localLine = localInput.readLine(); while(!localLine.equals("bye")) { toClient.println(localLine); toClient.flush(); System.out.println("Server: " + localLine); // 等待来自客户端的消息 System.out.println("Client:" + fromClient.readLine()); localLine = localInput.readLine(); } fromClient.close(); toClient.close(); socket.close(); serversocket.close(); } catch (Exception e) { System.out.println("Error" + e); } } }
相关文章推荐
- 谈JDBC SQLSERVER"Error establishing socket
- Socket server & Client
- <Error> <Server> <BEA-002606> <Unable to create a server socket for listening on channel "Default[2
- ServerSocket & Socket
- Python案例-网络编程-socket入门-server&client
- ServerSocket:Socket & ServerSocket
- setsockopt(server_sockfd,SOL_SOCKET,SO_REUSEADDR,&j,sizeof(j));
- [Node.js]29. Level 6: Socket.io: Setting up Socket.io server-side & Client socket.io setup
- J2EE工具类:ClientSocketUtil.java&ServerSocketConnection.java
- 错误: MySQL server through socket '/var/run/mysqld/mysqld.sock‘
- MonitorServer代码阅读笔记(一):使用sigaction( SIGPIPE, &sa, 0)避免写一个已关闭的socket导致进程退出
- Iocp Tcp Server——G-Socket1.1 Demo源码(VC & Delphi)
- C# Socket TCP Server & Client & nodejs client
- java/android的Socket&&ServerSocket
- qtcpsocket qtcpserver,在用block写数据包的时候,注意">>"和"<<"用法
- WinSocket網絡通信之 TClientSocket & TServerSocket (續)
- Delphi 实现传送文件 <TServerSocket/TClientSocket>
- Unable to start gdbserver on port '63411' Can't open socket: Permission denied.的解决办法
- setsockopt(server_sockfd,SOL_SOCKET,SO_REUSEADDR,&j,sizeof(j));
- linux c socket学习 server&client --->code