?? java-socket.txt
字號:
java中socket通訊源碼
//serveonesocket.java 服務端源程序
import java.io.*;
import java.net.*;
public class serveonesocket extends thread {
private socket socket;
private bufferedreader in;
private printwriter out;
private string content;
/**
* constructor
*/
public serveonesocket(socket s,string c)throws ioexception {
socket=s;
content=c;
in=new bufferedreader(
new inputstreamreader(
socket.getinputstream()));
//enable auto-flush
out=new printwriter(
new bufferedwriter(
new outputstreamwriter(
socket.getoutputstream())),true);
start();//calls run()
}
public void run(){
try{
while (true){
string str=in.readline();
if (str.equals("end"))break;
system.out.println("echoing:"+str);
out.println(str);
out.println(content);
}
system.out.println("closing...");
}catch(ioexception e){
}finally{
try{
socket.close();
}catch(ioexception e){}
}
}
}
//socketclientthread.java 客戶端源程序
import java.net.*;
import java.io.*;
class socketclientthread extends thread{
private socket socket;
private bufferedreader in;
private printwriter out;
private static int counter=0;
private int id=counter++;
private static int threadcount=0;
final int port=8110;
public static int threadcount(){
return threadcount;
}
public socketclientthread(.netaddress addr){
system.out.println("making client:"+id);
threadcount++;
try{
socket=new socket(addr,port);
}catch(ioexception e){
}
try{
in=new bufferedreader(
new inputstreamreader(
socket.getinputstream()));
out=new printwriter(
new bufferedwriter(
new outputstreamwriter(
socket.getoutputstream())),true);
start();
}catch(ioexception e){
try{
socket.close();
}catch(ioexception e2){}
}
}
public void run(){
try{
for (int i=0;i<25;i++){
out.println("client:"+id+":"+i);
string str=in.readline();
system.out.println(str);
}
out.println("end");
}catch(ioexception e){
}finally{
try{
socket.close();
}catch(ioexception e){}
threadcount--;
}
}
}
public class multisocketclient {
static final int max_threads=10;
/**
* main
* @param args
*/
public static void main(string[] args)throws ioexception,interruptedexception {
.netaddress addr=.netaddress.getbyname(null);
while (true){
if (socketclientthread.threadcount()<max_threads)
new socketclientthread(addr);
thread.currentthread().sleep(100);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -