【Java基础学习笔记】Java中Socket+Swing设计简单通信
来源:互联网 发布:mysql ant value 编辑:程序博客网 时间:2024/05/13 14:07
在《Java从入门到精通(第3版)》的原书中,客户端仅能发送一次数据,我在此基础上修改了一点点,实现了多次发送数据的单向通讯。
1. 服务器端
package Tcp_IP;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;import java.sql.Date;import java.sql.Time;import java.text.SimpleDateFormat;import java.util.SimpleTimeZone;import com.sun.org.apache.bcel.internal.generic.NEW;import javafx.beans.binding.When;import IO_Test.bufferread;public class My_Server {private BufferedReader reader;private ServerSocket Ser_Sock;private Socket socket;void My_Server() {// TODO Auto-generated constructor stubtry {Ser_Sock = new ServerSocket(8766);System.out.println("等待客户连接中···");socket = Ser_Sock.accept();reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));while(reader!=null){SimpleDateFormat forma = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");System.out.println("连接成功:"+forma.format(new java.util.Date()));System.out.println("获得客户端信息为:"+reader.readLine());}reader.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} }public static void main(String[] args) {// TODO Auto-generated method stubMy_Server SV = new My_Server();SV.My_Server();}}
2. 客户端
package Tcp_IP;import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.border.BevelBorder;public class My_Client extends JFrame{Socket socket;private JTextArea ta = new JTextArea();private JTextField tf = new JTextField();private PrintWriter writer;Container c;public My_Client(String titl) {// TODO Auto-generated constructor stubsuper(titl);setDefaultCloseOperation(EXIT_ON_CLOSE);c = getContentPane();final JScrollPane scollpane = new JScrollPane();scollpane.setBorder(new BevelBorder(BevelBorder.RAISED));getContentPane().add(scollpane, BorderLayout.CENTER);scollpane.setViewportView(ta);c.add(tf, "South");ta.append("尝试连接\n");try {socket = new Socket("127.0.0.1", 8766);} catch (UnknownHostException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}ta.append("已连接,请输入发送信息\n");tf.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubtry {writer = new PrintWriter(socket.getOutputStream(), true);writer.println(tf.getText());ta.append(tf.getText()+"\n");ta.setSelectionEnd(tf.getText().length());tf.setText("");} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}});}public static void main(String[] args) {// TODO Auto-generated method stubMy_Client client = new My_Client("连接服务器");client.setSize(200, 200);client.setVisible(true);}}
3. 运行效果
0 0
- 【Java基础学习笔记】Java中Socket+Swing设计简单通信
- java socket通信学习笔记
- JAVA-Socket通信基础
- java socket 简单通信
- java swing学习笔记
- Java Swing 学习笔记
- java Swing学习笔记
- java Swing学习笔记
- Java Swing学习笔记
- 学习笔记-Java swing
- Java学习笔记-----Socket全双工通信
- java学习笔记---Socket应用网络通信
- JAVA-Socket通信笔记
- Java学习中--swing
- Java 中 Socket 通信
- java中socket通信
- Java中Socket通信
- Java中利用socket实现简单的服务端与客户端的通信(基础级)
- Scala:类的属性、对象私有属性
- [leetcode] Lowest Common Ancestor of a Binary Tree
- SHELL脚本:检测一坨IP是否都能ping通(网卡监控)
- iOS内存管理小总结
- 微信sdk的使用出现invalid url domain
- 【Java基础学习笔记】Java中Socket+Swing设计简单通信
- TCP/IP网络编程 学习笔记_6 --定义应用层协议
- 动态分配二维数组的两个方法
- java中的static关键字
- Code First 迁移更新数据库
- 黑马程序员------C语言中变量的概念,初始化和引用以及作用域
- Android中程序与Service交互的方式
- Registering for Device Notification
- Android开发界面设计---音乐播放器界面