java基础学习之网络编程全双工

来源:互联网 发布:淘宝消保保证金30元 编辑:程序博客网 时间:2024/05/22 09:05
/** * 这是一个客服端 */package com.test;import java.net.*;import java.io.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;/** * @author Administrator * */public class MyClient1 extends JFrame implements ActionListener {/** * @param args */JTextArea jta=null;JTextField jtf=null;JScrollPane jsp=null;JButton jb=null;JPanel jp1=null;PrintWriter pw=null;public static void main(String[] args) {// TODO 自动生成的方法存根MyClient1 mc=new MyClient1();}public MyClient1(){jta=new JTextArea();jsp=new JScrollPane(jta);jtf=new JTextField(10);jb=new JButton("发送");jb.addActionListener(this);jp1=new JPanel();jp1.add(jtf);jp1.add(jb);this.add(jp1);this.add(jsp,"Center");this.add(jp1,"South");this.setTitle("QQ简易-客户端");this.setSize(300,200);this.setVisible(true);try {//Socket函数就是连接某刻服务器端Socket s=new Socket("127.0.0.1",9999);InputStreamReader isr=new InputStreamReader(s.getInputStream());BufferedReader br=new BufferedReader(isr);pw=new PrintWriter(s.getOutputStream(),true);while(true){//不停的读取服务器发送的信息String info =br.readLine();jta.append("服务器  对  客户端说   "+info+"\r\n");}} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();} }@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根if(e.getSource()==jb){String info=jtf.getText();//把客户端的信息显示到jtajta.append("客户端  对  服务器说"+info+"\r\n");pw.println(info);//清空发送框jtf.setText("");}}}
<pre name="code" class="java">/** * 这是一个服务器程序,在9999端口监听 * 可以通过控制台,可以回送客服端信息 */package com.test1;import java.io.*;import java.net.*;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;/** * @author Administrator * */public class MyServer1 extends JFrame implements ActionListener{/** * @param args */JTextArea jta=null;JTextField jtf=null;JScrollPane jsp=null;JButton jb=null;JPanel jp1=null;PrintWriter pw=null;public static void main(String[] args) {// TODO 自动生成的方法存根MyServer1 ms1=new MyServer1();}public MyServer1(){jta=new JTextArea();jsp=new JScrollPane(jta);jtf=new JTextField(10);jb=new JButton("发送");jb.addActionListener(this);jp1=new JPanel();jp1.add(jtf);jp1.add(jb);this.add(jp1);this.add(jsp,"Center");this.add(jp1,"South");this.setTitle("QQ简易-服务器");this.setSize(300,200);this.setVisible(true);try {//在9999号端口监听System.out.println("我是服务器,在9999监听。。。");ServerSocket ss=new ServerSocket(9999);//等待某个客服端来连接,该函数会返回一个Socket连接Socket s=ss.accept();//读取客户端发来的信息InputStreamReader isr=new InputStreamReader(s.getInputStream());BufferedReader br=new BufferedReader(isr); pw=new PrintWriter(s.getOutputStream(),true);while(true){//读取从客户端发来的信息String info=br.readLine();jta.append("客户端  对  服务器说"+info+"\r\n");}} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根//如果用户按下发送按钮if(e.getSource()==jb){//把服务器在jtf写的内容发送给客户端String info=jtf.getText();jta.append("服务器  对  客户端说"+info+"\r\n");pw.println(info);//清空发送框jtf.setText("");}}}


                                             
0 0
原创粉丝点击