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
- java学习笔记—
- Java学习笔记 —— 23
- 学习笔记——JAVA
- JAVA学习笔记——
- 学习笔记——Java
- 学习笔记——Java
- java学习笔记—Jlist
- Java学习笔记—第一章
- JAVA学习笔记—对象
- Java学习笔记—反射
- Java学习笔记—集合
- JAVA学习笔记—总体学习目标
- java学习笔记23
- Java学习笔记23
- java学习——java中的反射学习笔记
- java学习笔记—java的学习路线
- java学习笔记23——枚举类
- Java学习笔记5——Annotation
- (工具类)使用SecureCRT作为通信媒介
- 使用Java对两个对象的属性进行拷贝
- 小编程题之书本转移
- C#Winform程序如何发布并自动升级(图解)
- java实现贪吃蛇小游戏
- Java学习笔记 —— 23
- perl 引用
- Oracle物理体系(二)
- java代码中调用受限制的JDK API
- 黑马程序员---java基础---异常处理
- 欧拉-拉格朗日方程
- 引用参数与引用返回值
- #define
- Linux进程间的通信(一)