运用Java中socket编程实现简单的服务器客户端收发信息程序
2018-01-13 18:27
981 查看
1.socket编程实现
服务器端先初始化Socket对象,再与端口绑定(bind),然后在端口进行监听(listen),调用accept阻塞,等待客户端连接。这时如果有客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
服务器端先初始化Socket对象,再与端口绑定(bind),然后在端口进行监听(listen),调用accept阻塞,等待客户端连接。这时如果有客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; /** * @author 58380 * * 服务器端 */ public class TestServer extends JFrame { /** * 消息显示栏 */ JTextArea jta; public TestServer() { try { //获取界面 this.getUi(); byte[] b = new byte[1024]; System.out.println("服务器在9999端口监听..."); ServerSocket ss = new ServerSocket(9999); while(true) { //监听 Socket socket = ss.accept(); InputStream os = new DataInputStream(socket.getInputStream()); os.read(b); String str = new String(b); jta.append("从客户端接收:" + str + "\n"); } } catch(Exception e) { e.printStackTrace(); } } /** * 获取通信主界面 */ private void getUi() { jta = new JTextArea(); this.add(jta, "Center"); this.setTitle("服务器"); this.setSize(300, 400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new TestServer(); } }
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.DataOutputStream; import java.io.OutputStream; import java.net.Socket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; /** * @author 58380 * * 客户端 */ public class TestClient extends JFrame implements ActionListener { /** * 消息输入框 */ JTextField jtf; /** * 发送按钮 */ JButton jb; /** * 消息显示栏 */ JTextArea jta; /** * 主Panel */ JPanel jp1; /** * 副Panel */ JPanel jp2; public TestClient() { //获取界面 this.getUi(); } /** * 获取通信主界面 */ private void getUi() { jta = new JTextArea(); jtf = new JTextField(15); jb = new JButton("发送"); jb.addActionListener(this); jp2 = new JPanel(); jp2.add(jtf); jp2.add(jb); this.add(jta, "Center"); this.add(jp2, "South"); this.setTitle("客户端"); this.setSize(300, 400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new TestClient(); } @Override public void actionPerformed(ActionEvent e) { //触发发送按钮 if(e.getSource() == jb) { String str = jtf.getText(); if(null != str) { byte[] b = str.getBytes(); try{ Socket socket = new Socket("127.0.0.1", 9999); OutputStream is = new DataOutputStream(socket.getOutputStream()); is.write(b); }catch(Exception e1){ e1.printStackTrace(); } jta.append("向服务器发送:" + str + "\n"); } } } }
相关文章推荐
- java使用多线程编程,实现socket服务器客户端交互
- 网络编程:使用Socket实现简单的服务器和客户端的通信
- 什么是socket?什么是socket的长、短连接?java如何简单实现socket客户端和服务器?
- Android中socket编程实现简单的客户端和服务器之间的通信
- JAVA实现服务器和客户端的单播/广播消息转发的Socket编程(有图形用户界面)
- TCP/TP编程 - 一个简单的Linux下C写的socket服务器客户端程序
- Java实现简单的Socket服务器与客户端字符串通讯(适合初学者阅读)
- Java实现简单的Socket服务器与客户端字符串通讯(适合初学者阅读)
- 01 TCP Socket 编程_一个简单的服务端程序和客户端程序实现
- Linux socket编程-最简单的服务器和客户端程序
- 用Java实现一个简单的服务器与客户端程序
- java网络编程----------Socket实现客户端和服务器的连接
- socket编程(一),实现服务器与客户端简单通信
- 运用socket实现简单的服务器客户端交互
- Java 利用套接字Socket实现简单的服务器与客户端通信
- Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程
- [Socket编程] 用Java实现简单的服务器
- Java 利用套接字Socket实现简单的服务器与客户端通信
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- java实现了简单的Echo服务程序分服务器和客户端