使用Socket及ServerSocket创建简单的服务器
来源:互联网 发布:屋面变形缝算法 编辑:程序博客网 时间:2024/05/17 19:22
使用Socket及ServerSocket创建简单的服务器
@(JAVA)[java]
参考自core java
package com.lujinhong.corejava;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class EchoServer { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8019); Socket socket = serverSocket.accept(); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); Scanner sc = new Scanner(is); Boolean flag = false; String line = null; String exitString = "bye"; while(!flag && sc.hasNextLine()){ pw.println("Hello, type " + exitString + " to exit!"); line = sc.nextLine(); if(line.trim().equals(exitString)){ flag = true; }else{ pw.println("Hello, "+line); } } pw.close(); sc.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } }}
使用线程实现多个客户端同时访问:
package com.lujinhong.corejava;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class MultiEchoServer { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8189); while (true) { Socket socket = serverSocket.accept(); Runnable r = new ThreadedEchoHandler(socket); Thread thread = new Thread(r); thread.start(); } } catch (IOException e) { e.printStackTrace(); } }}class ThreadedEchoHandler implements Runnable { private Socket s = null; public ThreadedEchoHandler(Socket socket) { s = socket; } @Override public void run() { try { InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); PrintWriter pw = new PrintWriter(os); Scanner sc = new Scanner(is); Boolean flag = false; String line = null; String exitString = "bye"; while (!flag && sc.hasNextLine()) { pw.println("Hello, type " + exitString + " to exit!"); line = sc.nextLine(); if (line.trim().equals(exitString)) { flag = true; } else { pw.println("Hello, " + line); } } sc.close(); pw.close(); } catch (IOException e) { e.printStackTrace(); } }}
In this program, we spawn a separate thread for each connection. This approach is not satisfactory for highperformance servers. You can achieve greater server throughput by using features of the java.nio package. See www.ibm.com/developerworks/java/library/j-javaio for more information.
阅读全文
0 0
- 使用Socket及ServerSocket创建简单的服务器
- 使用Socket及ServerSocket创建简单的服务器
- 使用ServerSocket、Socket创建一个简单的服务聊天程序
- 简单的Socket及ServerSocket例子
- Socket介绍及使用ServerSocket建立聊天服务器
- ServerSocket和Socket创建一个简易的服务器
- Socket和ServerSocket的使用
- android ServerSocket 和 Socket使用简单讲解
- android学习笔记:serversocket和socket创建简单聊天室
- 安卓Socket和ServerSocket的使用
- java37.Socket通信------使用ServerSocket建立聊天服务器---1
- java38.Socket通信------使用ServerSocket建立聊天服务器---2
- Socket 基础解析使用ServerSocket建立聊天服务器
- 利用线程使用 ServerSocket 和 Socket 简单双向通讯
- Java 中ServerSocket与Socket 通信的简单示例
- java Socket ServerSocket 聊天程序 。 太简单的程序了
- java中ServerSocket和Socket的简单用法
- JAVA ServerSocket 简单web服务器
- 笨办法学 Python · 续 练习 19:改善性能
- kmeans 的k值确定方法
- Python机器学习 scikit-learn机器学习库
- L2-014. 列车调度
- Android APP打包和manifest文件里设置的APP图标和名称不一样及resources-release-stripped.ap_' specified for property '问题解决
- 使用Socket及ServerSocket创建简单的服务器
- bootstrap
- 算法-数字在排序数组中出现的次数
- decod函数的用法
- 前端表单验证常用的正则表达式
- Pycharm新建模板默认添加个人信息
- 为什么多线程线程处理数据经常出现singnal异常,寻址异常
- aspectj通知
- C# 设置图片透明度源码,支持16/24/32位色深