日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Socket簡(jiǎn)單實(shí)例

 小傅哥 2021-12-13

Server端

import java.net.*;
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;

public class ChatServer extends Frame
{
?TextArea ta = new TextArea();
?public void launchFrame()
?{
??add(ta, BorderLayout.CENTER);
??setBounds(0,0,200,300);?
??this.addWindowListener(
???new WindowAdapter()
???{
????public void windowClosing(WindowEvent e)
????{
?????System.exit(0);
????}
???}
???);
??setVisible(true);
?}
?
?ServerSocket server = null;
?Collection cClient = new ArrayList();
?
?public ChatServer(int port) throws Exception
?{
??server = new ServerSocket(port);
??launchFrame();
?}
?
?public void startServer() throws Exception
?{
??while(true)
??{
???Socket s = server.accept();
???cClient.add( new ClientConn(s) );
???ta.append("NEW-CLIENT " + s.getInetAddress() + ":" + s.getPort());
???ta.append("\n" + "CLIENTS-COUNT: " + cClient.size() + "\n\n");
??}
?}
?
?class ClientConn implements Runnable
?{
??Socket s = null;
??public ClientConn(Socket s)
??{
???this.s = s;
???(new Thread(this)).start();
??}
??
??public void send(String str) throws IOException
??{
???DataOutputStream dos = new DataOutputStream(s.getOutputStream());
???dos.writeUTF(str);
??}
??
??public void dispose()
??{
???try {
????if (s != null) s.close();
????cClient.remove(this);
????ta.append("A client out! \n");
????ta.append("CLIENT-COUNT: " + cClient.size() + "\n\n");
???}
???catch (Exception e)
???{
????e.printStackTrace();
???}
??}
??
??public void run()
??{
???try {
????
????DataInputStream dis = new DataInputStream(s.getInputStream());
????String str = dis.readUTF();
????while(str != null && str.length() !=0)
????{
?????System.out.println(str);
?????for(Iterator it = cClient.iterator(); it.hasNext(); )
?????{
??????ClientConn cc = (ClientConn)it.next();
??????if(this != cc)
??????{
???????cc.send(str);
??????}
?????}
?????str = dis.readUTF();
?????//send(str);
????}
????this.dispose();
???}
???catch (Exception e)
???{
????System.out.println("client quit");
????this.dispose();
???}
???
??}
?}
?
?public static void main(String[] args) throws Exception
?{
??ChatServer cs = new ChatServer(8888);
??cs.startServer();
?}
}

Client端

import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

public class ChatClient extends Frame
{
?TextArea ta = new TextArea();
?TextField tf = new TextField();
?public void launchFrame() throws Exception
?{
??this.add(ta, BorderLayout.CENTER);
??this.add(tf, BorderLayout.SOUTH);
??tf.addActionListener(
???new ActionListener()
???{
????public void actionPerformed(ActionEvent ae)
????{
?????try {
??????String sSend = tf.getText();
??????if(sSend.trim().length() == 0) return;
??????ChatClient.this.send(sSend);
??????tf.setText("");
??????ta.append(sSend + "\n");
?????}
?????catch (Exception e) { e.printStackTrace(); }
????}
???}
???);
??
??this.addWindowListener(
???new WindowAdapter()
???{
????public void windowClosing(WindowEvent e)
????{
?????System.exit(0);
????}
???}
???);
??setBounds(300,300,300,400);
??setVisible(true);
??tf.requestFocus();
?}
?
?Socket s = null;
?
?public ChatClient() throws Exception
?{
??s = new Socket("127.0.0.1", 8888);
??launchFrame();
??(new Thread(new ReceiveThread())).start();
?}
?
?public void send(String str) throws Exception
?{
??DataOutputStream dos = new DataOutputStream(s.getOutputStream());
??dos.writeUTF(str);
?}
?
?public void disconnect() throws Exception
?{
??s.close();
?}
?
?public static void main(String[] args) throws Exception
?{
??BufferedReader br = new BufferedReader (
????????new InputStreamReader(System.in));
??ChatClient cc = new ChatClient();
??String str = br.readLine();
??while(str != null && str.length() != 0)
??{
???cc.send(str);
???str = br.readLine();
??}
??cc.disconnect();
?}
?
?class ReceiveThread implements Runnable
?{
??public void run()
??{
???if(s == null) return;
???try {
????DataInputStream dis = new DataInputStream(s.getInputStream());
????String str = dis.readUTF();
????while (str != null && str.length() != 0)
????{
?????//System.out.println(str);
?????ChatClient.this.ta.append(str + "\n");
?????str = dis.readUTF();
????}
???}
???catch (Exception e)
???{
????e.printStackTrace();
???}
???
??}
?}
}

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多