Javasocket应用实例
用于本地群聊的小程序:
客户端:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class Friendclient extends Thread
{
public void Writer() throws Exception
{
Socket s=new Socket("127.0.0.1",54321);
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String message="本客户端说:";
while(!(message.equals("goodbye")))
{
message=br.readLine();
System.out.println("客户端说:"+message);
bw.write(message+"\n");
bw.flush();
}
bw.close();s.close();
}
public void run()
{
BufferedReader bq=null;
Socket st=null;
try
{
st=new Socket("127.0.0.1",54321);
bq=new BufferedReader(new InputStreamReader(st.getInputStream()));
String msg="其他客户端说:";
while(!(msg.equals("")))
{
msg=bq.readLine();
System.out.println("其他客户端说:"+msg);
}
}
catch(Exception e){e.printStackTrace();}
finally
{
try
{
bq.close();st.close();
}
catch(Exception e){e.printStackTrace();}
}
}
public static void main(String args[])throws Exception
{
Friendclient ft=new Friendclient();
ft.start();
ft.Writer();
}
}
服务器端:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
public class Allserver
{
private ServerSocket ss=null;
private static ArrayList al=new ArrayList();
public Allserver() throws Exception
{
ss=new ServerSocket(54321);
while(true)
{
Socket s=ss.accept();
al.add(s);
new Mtherd(s).start();
}
}
private class Mtherd extends Thread
{
private Socket sd=null;
private BufferedReader br=null;
//private BufferedWriter bw=null;
public Mtherd(Socket sd)throws Exception
{
this.sd=sd;
br=new BufferedReader(new InputStreamReader(sd.getInputStream()));
//bw=new BufferedWriter(new OutputStreamWriter(sd.getOutputStream()));
}
public void run()
{
try
{
String gh="...................";
while(true)
{
gh=br.readLine();
setAll(gh);
}
}
catch(Exception e){e.printStackTrace();}
}
public void setAll(String x)throws Exception
{
Socket ss=null;
BufferedWriter bv=null;
for(int i=0;i
{
ss=(Socket)al.get(i);
bv=new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
bv.write(x+"\n");
bv.flush();
}
}
}
public static void main(String args[])throws Exception
{
new Allserver();
}
}
【Javasocket应用实例】相关文章: