java的Socket编写的多线程Server,支持并发访问


java Socket起步教程java使用Socket 编写一个Server
之前写过一个socket Server很基础,仅仅支持一次访问,立即会停止。真正的Server都支持大量的访问。大量并发访问,就属于多线程了。那么Server必须也启动多个线程来应对多个客户端。

要点:继承Thread线程类。

这样你就可以在浏览器里多次访问,并且可以多个人同时访问

package com.javaer.examples.socket;
 
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 MutiUserServer extends Thread {
	private Socket client;
 
	public MutiUserServer(Socket c) {
		client = c;
	}
 
	public void run() {
 
		try {
			BufferedReader in = new BufferedReader(new InputStreamReader(
					client.getInputStream()));
			PrintWriter out = new PrintWriter(client.getOutputStream());
 
			int i = 0;
			while (true) {
				String str = in.readLine();// 接受客户方输入字符串
				System.out.println(str);
 
 
				i++;
				out.println("has receive...." + i);
				out.flush();
				if (str.indexOf("Accept-Charset:") != -1) {
 
					break;
 
				}
				if (str.equals("end"))
					break;
			}
 
			client.close();
		} catch (Exception e) {
		}
	}
 
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		System.out.println("muti user server start");
		ServerSocket server=new ServerSocket(2156);
		while(true){
			MutiUserServer mus = new MutiUserServer(server.accept());
			mus.start();
		}
	}
 
}
如果你是一名技术人员可加我QQ 2651-0442-02,如果你是java技术人还可以加入QQ群 1784-9136-0
你将得到的不仅仅是技术的交流,还有职业机会,人生解惑.
首发地址:月小升博客http://java-er.com/blog/java-muti-server-socket/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
此条目发表在 JAVA 分类目录,贴了 , 标签。将固定链接加入收藏夹。
既然来了,就评论一下,不会怀孕的

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">