码迷,mamicode.com
首页 > 编程语言 > 详细

Java——socketser与cli

时间:2019-11-25 22:01:44      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:int   创建   java   stream   网络   code   line   tle   lin   

 

package 网络编程;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class 界面ser extends JFrame implements ActionListener//搞一手动作监听
{
    JPanel mb=null; JTextArea ta=null; JButton an=null; JTextField tf=null;
    JScrollPane gd=null; PrintWriter prin=null;//定义在这的 全局调用
    public static void main(String[] args) 
    {
        界面ser ser=new 界面ser();
    }
    public 界面ser()
    {
    
        ta=new JTextArea();
        gd=new JScrollPane(ta);
        this.add(gd);
        tf=new JTextField(20);
        an=new JButton("发送");
        an.addActionListener(this);    //这句是添加按键自己 this做监听,我是这么理解的,this关键字我一直搞不太明白,有懂得可以分享下哈
        mb=new JPanel(); mb.add(tf); mb.add(an); //add tf  add an 要放到tf an创建之后
        this.add(mb,"South"); 
        
        this.setTitle("服务器");
        this.setSize(600,500);
        this.setLocation(500,600);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        
        try{//socket通信有关部分全都要放到try catch中,因为它可能会出现异常
            ServerSocket ser=new ServerSocket(9999);
            Socket serl=ser.accept();
            InputStreamReader mes=new InputStreamReader(serl.getInputStream());
            BufferedReader mess=new BufferedReader(mes);
            prin=new PrintWriter(serl.getOutputStream(),true);//true是开启自动刷新
            while(true)//接收部分,直接扔到死循环里,接受就显示
        {
                String xinxi=mess.readLine();
                ta.append("B:"+xinxi+"\r\n");//TextField上添加信息不覆盖
                
        }
        }catch(Exception e){}
        
    }
    public void actionPerformed(ActionEvent e) 
    {
        if(e.getSource()==an)//如果按键被按下
        {
            String xinxi=tf.getText();//从TextField中读取
            ta.append("A:"+xinxi+"\r\n");//添加上信息,不覆盖,这个是在TextArea上显示
            prin.println(xinxi);         //这个是发送到客户端
            tf.setText("");                 //发送之后,清空TextField
        }
    }
}
package 网络编程;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class 界面cli extends JFrame implements ActionListener
{
    JPanel mb=null; JTextArea ta=null; JButton an=null; JTextField tf=null;
    JScrollPane gd=null; PrintWriter prin=null;
    public static void main(String[] args) 
    {
        界面cli cli=new 界面cli();
    }
    public 界面cli()
    {
        
        ta=new JTextArea();//文本区域是不用添加到面板上的,直接this.add即可
        gd=new JScrollPane(ta);
        this.add(gd);
        tf=new JTextField(20);
        an=new JButton("发送");
        an.addActionListener(this);//添加监听
        mb=new JPanel(); mb.add(tf); mb.add(an); 
        this.add(mb,"South"); 
        
        this.setTitle("客户端");
        this.setSize(600,500);
        this.setLocation(500,600);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        
        try{
            Socket serl=new Socket("127.0.0.1",9999);//本机IP 端口要与服务端相同
            InputStreamReader mes=new InputStreamReader(serl.getInputStream());
            BufferedReader mess=new BufferedReader(mes);
            prin=new PrintWriter(serl.getOutputStream(),true);
            while(true)
        {
                String xinxi=mess.readLine();
                ta.append("A:"+xinxi+"\r\n");//ta  TextArea
                
        }
        }catch(Exception e){}
        
    }
    public void actionPerformed(ActionEvent e) 
    {
        if(e.getSource()==an)
        {
            String xinxi=tf.getText();
            ta.append("B:"+xinxi+"\r\n");//添加上信息,不覆盖,这个是在TextArea上显示
            prin.println(xinxi);         //这个是发送到server端
            tf.setText("");                 //发送之后,清空TextField
        }
    }
}

 

Java——socketser与cli

标签:int   创建   java   stream   网络   code   line   tle   lin   

原文地址:https://www.cnblogs.com/JLU-Dragon/p/11930840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!