java socket例子
来源:互联网 发布:听力软件 编辑:程序博客网 时间:2024/05/19 12:12
转自:http://liudaoru.iteye.com/blog/281287
今天看了一下socket,觉得这篇文字不错。转过来,以后学习一下。
服务端代码:
public class Server { public static void main(String args[]) throws IOException { //为了简单起见,所有的异常信息都往外抛 int port = 8899; //定义一个ServerSocket监听在端口8899上 ServerSocket server = new ServerSocket(port); while (true) { //server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的 Socket socket = server.accept(); //每接收到一个Socket就建立一个新的线程来处理它 new Thread(new Task(socket)).start(); } } /** * 用来处理Socket请求的 */ static class Task implements Runnable { private Socket socket; public Task(Socket socket) { this.socket = socket; } public void run() { try { handleSocket(); } catch (Exception e) { e.printStackTrace(); } } /** * 跟客户端Socket进行通信 * @throws Exception */ private void handleSocket() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GBK")); StringBuilder sb = new StringBuilder(); String temp; int index; while ((temp=br.readLine()) != null) { System.out.println(temp); if ((index = temp.indexOf("eof")) != -1) {//遇到eof时就结束接收 sb.append(temp.substring(0, index)); break; } sb.append(temp); } System.out.println("客户端: " + sb); //读完后写一句 Writer writer = new OutputStreamWriter(socket.getOutputStream(), "UTF-8"); writer.write("你好,客户端。"); writer.write("eof\n"); writer.flush(); writer.close(); br.close(); socket.close(); } }}
客户端代码:
public class Client { public static void main(String args[]) throws Exception { //为了简单起见,所有的异常都直接往外抛 String host = "127.0.0.1"; //要连接的服务端IP地址 int port = 8899; //要连接的服务端对应的监听端口 //与服务端建立连接 Socket client = new Socket(host, port); //建立连接后就可以往服务端写数据了 Writer writer = new OutputStreamWriter(client.getOutputStream(), "GBK"); writer.write("你好,服务端。"); writer.write("eof\n"); writer.flush(); //写完以后进行读操作 BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream(), "UTF-8")); //设置超时间为10秒 client.setSoTimeout(10*1000); StringBuffer sb = new StringBuffer(); String temp; int index; try { while ((temp=br.readLine()) != null) { if ((index = temp.indexOf("eof")) != -1) { sb.append(temp.substring(0, index)); break; } sb.append(temp); } } catch (SocketTimeoutException e) { System.out.println("数据读取超时。"); } System.out.println("服务端: " + sb); writer.close(); br.close(); client.close(); }}
1 0
- Java Socket 应用例子
- Java Socket通讯例子
- java socket例子
- java多线程Socket例子
- Java Socket 例子
- java socket小例子
- Java Socket通讯例子
- Java socket 简单例子
- java socket例子
- Java - socket双向通信例子
- java socket服务器端例子
- Java Socket例子
- java socket 简单通信例子
- java socket编程小例子
- Java Socket多线程通信例子
- 简单的java Socket 例子
- Java Socket编程2--例子
- java Socket 通讯的代码例子(转)
- c++ 单例模式
- Remove Duplicates from Sorted Array II
- C#关键字-where(泛型类型约束)
- 程序员总结:帮助你早些明白一些道理
- pager-lib实现分页
- java socket例子
- 编写webservice服务端和客户端实例(1)
- Twitter创始人回忆创业艰辛:梦里为房租发愁
- C# vs2010编译时filetracker:error ftk1011
- UIWindow和UIView
- Oracle SQL的硬解析和软解析
- qq企业邮箱:外包已经成为企业邮箱发展趋势
- 【转载】ubuntu 开机启动时自动运行程序
- LINUX下安装软件方法命令方法