Java学习笔记 —— 23

来源:互联网 发布:网络写手签约哪个网站 编辑:程序博客网 时间:2024/06/03 21:45

网络编程


1)半双工

服务器

MyServer.java

<span style="font-size:18px;">import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class MyServer {public static void main(String[] args) {MyServer server = new MyServer();}public MyServer() {super();// TODO Auto-generated constructor stubtry {//在9999号监听ServerSocket ss = new ServerSocket(9999);System.out.println("我是服务器,在9999端口监听");Socket s = ss.accept();//System.out.println("11");//要读取数据s中传递的数据InputStreamReader isr = new InputStreamReader(s.getInputStream());BufferedReader br = new BufferedReader(isr);String info = br.readLine();System.out.println("服务器接收到:" + info);PrintWriter pw = new PrintWriter(s.getOutputStream(), true);pw.println("这里是服务器,你好!");} catch (Exception e) {e.printStackTrace();// TODO: handle exception}}}</span>
客户端

TestClient.java

<span style="font-size:18px;">package TestClient;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class TestClient {public TestClient(){try {Socket s = new Socket("127.0.0.1",9999);//如果s连接成功,皆可以发送数据给服务器//通过pw,想s写数据,true表示及时刷新。PrintWriter pw = new PrintWriter(s.getOutputStream(), true);pw.println("这里是客户端!");//要读取数据s中传递的数据InputStreamReader isr = new InputStreamReader(s.getInputStream());BufferedReader br = new BufferedReader(isr);String info = br.readLine();System.out.println("客户端接收到:" + info);} catch (Exception e) {e.printStackTrace();// TODO: handle exception}}public static void main(String[] args) {TestClient client = new TestClient();}}</span>

可以控制台交流

TestClient2.java

<span style="font-size:18px;">package TestClient;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class TestClient2 {public static void main(String[] args) {// TODO Auto-generated method stubTestClient2 client2 = new TestClient2();}public TestClient2() {//连接服务器端try {Socket s = new Socket("127.0.0.1", 9999);PrintWriter pw = new PrintWriter(s.getOutputStream(), true);InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);InputStreamReader isr2 = new InputStreamReader(s.getInputStream());BufferedReader br2 = new BufferedReader(isr2);while(true){//客户端从控制台接受System.out.println("请输入你想对服务器说的话");String info = br.readLine();//发送给服务器pw.println(info);if ( info.equals("bye")) {System.out.println("对话结束");s.close();break;}//接收服务器发来的话String res = br2.readLine();System.out.println("服务器说:"+ res);}} catch (Exception e) {e.printStackTrace();// TODO: handle exception} }}</span>


TestServer2.java

<span style="font-size:18px;">package TestServer;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class TestServer2 {public static void main(String[] args) {// TODO Auto-generated method stubTestServer2 server2 = new TestServer2();}public TestServer2() {super();// TODO Auto-generated constructor stubtry {//在9999端口监听System.out.println("客户端在监听9999……");ServerSocket ss = new ServerSocket(9999);//等待连接Socket s = ss.accept();//先接受客户端发来的信息InputStreamReader isr = new InputStreamReader(s.getInputStream());BufferedReader br = new BufferedReader(isr);PrintWriter pw = new PrintWriter(s.getOutputStream(), true);//接收控制台的谢谢InputStreamReader isr2 = new InputStreamReader(System.in);BufferedReader br2 = new BufferedReader(isr2);while (true) {String infoFromClient = br.readLine();if (infoFromClient.equals("bye")) {System.out.println("对话结束");s.close();break;}System.out.println("客户端发来:" + infoFromClient);//接收控制台输入的信息System.out.println("输入你希望对客户端说的话:");String response = br2.readLine();//把从控制台接收的信息,回送给客户端pw.println(response);}} catch (Exception e) {e.printStackTrace();// TODO: handle exception} }}</span>

2)全双工

TestClient3.java

package TestClient;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class TestClient3 extends JFrame implements ActionListener {JTextArea jta = null;JTextField jtf = null;JButton jb =null;JScrollPane jsp = null;JPanel jpl = null;PrintWriter pw = null;public static void main(String[] args) {TestClient3 client3 = new TestClient3();}public TestClient3() {jta = new JTextArea();jsp = new JScrollPane(jta);jtf = new JTextField(20);jb = new JButton("发送");jb.addActionListener(this);jpl = new JPanel();jpl.add(jtf);jpl.add(jb);this.add(jsp, "Center");this.add(jpl, "South");this.setTitle("QQClient");this.setSize(400, 300);this.setVisible(true);try {Socket s = new Socket("127.0.0.1", 9988);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("Server Say:" + info + "\r\n");}} catch (Exception e) {e.printStackTrace();// TODO: handle exception}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub// TODO Auto-generated method stub//如果用户按下发送按钮if(e.getSource() == jb){//吧服务器在jtf写的内容发送给客户端String info = jtf.getText();//客户端发送的信息显示到jta中jta.append("Client say: " + info + "\r\n");pw.println(info);jtf.setText("");}}}

TestServer.java

package TestServer;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class TestServer extends JFrame implements ActionListener {JTextArea jta = null;JTextField jtf = null;JButton jb =null;JScrollPane jsp = null;JPanel jpl = null;PrintWriter pw = null;public static void main(String[] args) {// TODO Auto-generated method stubTestServer server = new TestServer();}public TestServer(){jta = new JTextArea();jsp = new JScrollPane(jta);jtf = new JTextField(20);jb = new JButton("发送");jb.addActionListener(this);jpl = new JPanel();jpl.add(jtf);jpl.add(jb);this.add(jsp, "Center");this.add(jpl, "South");this.setTitle("QQServer");this.setSize(400, 300);this.setVisible(true);ServerSocket ss = null;try {//服务器监听ss = new ServerSocket(9988);//等待客户端连接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("Client say:" + info + "\r\n");}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub//如果用户按下发送按钮if(e.getSource() == jb){//吧服务器在jtf写的内容发送给客户端String info = jtf.getText();jta.append("Server say: " + info + "\r\n");pw.println(info);//清空内容jtf.setText("");}}}








0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 品正通保车险超市怎么办营业执照 车辆咨询服务门市怎么办营业执照 被互盾科技骗了怎么办 家具生意不好怎么办啊 今年家具店生意不好怎么办 奶茶店位置不好怎么办 早餐店位置不好怎么办 木工做的不好怎么办 淘宝昵称改不了怎么办 淘宝店关门售后怎么办 店里生意不好怎么办?解决方案 淘宝店铺没有生意怎么办 淘宝店做大了应该怎么办 汽车维修没生意怎么办 淘宝买家具安装怎么办 投标时未记主材费结算时怎么办 不敢买自慰棒怎么办 车被扎了个洞怎么办 企业欠税交不起怎么办 组织代码查不到怎么办 u盾电量不足怎么办 对公账户拍照怎么办 个人怎么办对公账户 车辆超过年检日期怎么办 手机cpu负载过高怎么办 移动数据上网慢怎么办 服务器密码忘记了怎么办 网吧电脑卡死了怎么办 局域网连接不上怎么办 电脑没有dns地址怎么办 无法连接版本服务器怎么办 登录游戏就死机怎么办 亿企薪税保没有绑定企业怎么办 众筹如果不成功怎么办 淘宝被投诉商标权怎么办 茅台贴标褶皱怎么办 ins取不了名字怎么办 ins密码忘了怎么办 ins不记得密码怎么办 ins账号被停用怎么办 电脑登录不上怎么办