日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Lesson 1:单线程 Socket Communications(一)

發布時間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lesson 1:单线程 Socket Communications(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 服務器端

?package socket;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;

import java.io.*;
import java.net.*;

class SocketServer extends JFrame
??implements ActionListener {

?? JButton button;
?? JLabel label = new JLabel("Text received over socket:");
?? JPanel panel;
?? JTextArea textArea = new JTextArea();
?? ServerSocket server = null;
?? Socket client = null;
?? BufferedReader in = null;
?? PrintWriter out = null;
?? String line;

?? SocketServer(){ //Begin Constructor
???? button = new JButton("Click Me");
???? button.addActionListener(this);

???? panel = new JPanel();
???? panel.setLayout(new BorderLayout());
???? panel.setBackground(Color.white);
???? getContentPane().add(panel);
???? panel.add("North", label);
???? panel.add("Center", textArea);
???? panel.add("South", button);

?? } //End Constructor

? public void actionPerformed(ActionEvent event) {
???? Object source = event.getSource();

???? if(source == button){
???????? textArea.setText(line);
???? }
? }

? public void listenSocket(){

??? try{
????? server = new ServerSocket(4444);?
????
} catch (IOException e) {
????? System.out.println("Could not listen on port 4444");
????? System.exit(-1);
??? }

??? try{
??????client = server.accept();
??? } catch (IOException e) {
????? System.out.println("Accept failed: 4444");
????? System.exit(-1);
??? }

??? try{
????? in = new BufferedReader(new InputStreamReader(client.getInputStream()));
????? out = new PrintWriter(client.getOutputStream(), true);
??? } catch (IOException e) {
????? System.out.println("Accept failed: 4444");
????? System.exit(-1);
??? }
?
??? while(true){
????? try{
??????? line = in.readLine();
//Send data back to client
??????? out.println(line);
????? } catch (IOException e) {
??????? System.out.println("Read failed");
??????? System.exit(-1);
????? }
??? }
? }

? protected void finalize(){
//Clean up?
???? try{
??????? in.close();
??????? out.close();
??????? server.close();
??? } catch (IOException e) {
??????? System.out.println("Could not close.");
??????? System.exit(-1);
??? }
? }

? public static void main(String[] args){
??????? SocketServer frame = new SocketServer();
?frame.setTitle("Server Program");
??????? WindowListener l = new WindowAdapter() {
??????????????? public void windowClosing(WindowEvent e) {
??????????????????????? System.exit(0);
??????????????? }
??????? };
??????? frame.addWindowListener(l);
??????? frame.pack();
??????? frame.setVisible(true);
?frame.listenSocket();
? }
}

?###########

客戶端

package socket;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;

import java.io.*;
import java.net.*;
class SocketClient extends JFrame
?? implements ActionListener {

?? /**
? *?
? */
?private static final long serialVersionUID = 1L;
JLabel text, clicked;
?? JButton button;
?? JPanel panel;
?? JTextField textField;
?? Socket socket = null;
?? PrintWriter out = null;
?? BufferedReader in = null;

?? SocketClient(){ //Begin Constructor
???? text = new JLabel("Text to send over socket:");
???? textField = new JTextField(20);
???? button = new JButton("Click Me");
???? button.addActionListener(this);

???? panel = new JPanel();
???? panel.setLayout(new BorderLayout());
???? panel.setBackground(Color.white);
???? getContentPane().add(panel);
???? panel.add("North", text);
???? panel.add("Center", textField);
???? panel.add("South", button);
?? } //End Constructor

? public void actionPerformed(ActionEvent event){
???? Object source = event.getSource();

???? if(source == button){
//Send data over socket
????????? String text = textField.getText();
????????? out.println(text);
?? textField.setText(new String(""));
//Receive text from server
?????? try{
?? String line = in.readLine();
????????? System.out.println("Text received :" + line);
?????? } catch (IOException e){
? System.out.println("Read failed");
?????? ? System.exit(1);
?????? }
???? }
? }
??
? public void listenSocket(){
//Create socket connection
???? try{
?????? socket = new Socket("127.0.0.1", 4444);
?????? out = new PrintWriter(socket.getOutputStream(), true);
?????? in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
???? } catch (UnknownHostException e) {
?????? System.out.println("Unknown host: kq6py.eng");
?????? System.exit(1);
???? } catch? (IOException e) {
?????? System.out.println("No I/O");
?????? System.exit(1);
???? }
? }

?? public static void main(String[] args){
??????? SocketClient frame = new SocketClient();
?frame.setTitle("Client Program");
??????? WindowListener l = new WindowAdapter() {
??????????????? public void windowClosing(WindowEvent e) {
??????????????????????? System.exit(0);
??????????????? }
??????? };

??????? frame.addWindowListener(l);
??????? frame.pack();
??????? frame.setVisible(true);
?frame.listenSocket();
? }
}

?

?本文轉自 randy_shandong 51CTO博客,原文鏈接:http://blog.51cto.com/dba10g/707095,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的Lesson 1:单线程 Socket Communications(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。