⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nettalkserver.java

📁 java编写的聊天室
💻 JAVA
字号:
package com.java.NetTalk;


import java.net.Socket;
import java.net.ServerSocket;
import java.util.Scanner;
import java.io.*;
import java.net.InetAddress;
import com.java.*;
import java.util.HashMap;

public class NetTalkServer extends Thread{
	public NetTalkServer(int iPortNumer,String endTag)throws IOException,ProtNetException{
		if(NetTalkServer.SYSTEM_PROT_MAXNUMBER > iPortNumer)
			throw new ProtNetException("Prot errpr.");
			this.endTag	= endTag;
			this.setDaemon(true);
			server = new ServerSocket(iPortNumer);
	}
	
	public void SetContent()throws IOException,ProtNetException{
			if(NetTalkServer.SYSTEM_PROT_MAXNUMBER > iPortNumer)
				throw new ProtNetException("Prot errpr.");
			
				this.setDaemon(true);
				server = new ServerSocket(iPortNumer);
			
	} 
	
	public void run(){
		while(true){
			try{
				Socket signleConnect = server.accept();
				Runnable runTemp = new NetTalkSignle(signleConnect,endTag);
				Thread   threadTemp = new Thread(runTemp);
				threadTemp.setDaemon(true);
				threadTemp.start();
			}catch(IOException e){
					e.printStackTrace();
			}
		}
	}
	
	public String toString(){
		
			return new String("1");
	}
	
	// private HashMap<String,InetAddress> addressMap; 
	private ServerSocket server;
	private String	endTag;
	private int iPortNumer;
	private static final int SYSTEM_PROT_MAXNUMBER = 1024;
	
	private class NetTalkSignle implements Runnable{
		public NetTalkSignle(Socket socketConnection,String endTag) throws IOException{
			connectionSocket = socketConnection;
			input			 = connectionSocket.getInputStream();
			out 			 = connectionSocket.getOutputStream();
			this.endTag		 = endTag;
		}
		
		public void run(){
				Scanner in = new Scanner(input);
				PrintWriter outWrite = new PrintWriter(out,true);
				outWrite.println("Hello");
				boolean bEnd = false;
				while((!bEnd) && in.hasNextLine()){
					String line = in.nextLine();
					System.out.println(line);
				//	try{
						Thread.yield();
				//	}catch(InterruptedException e){
				//		e.printStackTrace();
				//	}
					if(line.trim().toUpperCase().equals(endTag.toUpperCase())){
						bEnd = true;
					}
				}
				
				try{
					connectionSocket.close();
				}catch(IOException e){
					e.printStackTrace();
				}
		}
		
		public String GetInputInfo(){
				return sInput;
		}

		private String 			sInput;
		private String 			endTag;
		private	InputStream 	input;
		private OutputStream    out;
		private Socket 			connectionSocket;
	}
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -