📄 nettalkserver.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 + -