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