JAVA之TCP网络程序

来源:互联网 发布:用网络发短信 编辑:程序博客网 时间:2024/05/14 12:19

单方向的TCP通信



server端

import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.util.Calendar;import java.util.Date;import java.text.SimpleDateFormat;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.WindowConstants;import javax.xml.crypto.Data;public class sSocket {private ServerSocket server;private Socket socket;private BufferedReader reader;private JTextArea jt = new JTextArea(15,20);private JTextField jf = new JTextField();public sSocket(){JFrame frame = new JFrame();JScrollPane js = new JScrollPane(jt);Container con = frame.getContentPane();frame.setLocationRelativeTo(null);con.add(js,"North");con.add(jf,"South");frame.setSize(200,400);frame.setVisible(true);frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);getSever();}public void getSever(){try {server = new ServerSocket(8848);jt.append("服务器套接字创建成功...\n");while(true){jt.append("wait for client connect...\n");socket = server.accept();reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));jt.append("connect client success...\n");getClientMsg();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void getClientMsg(){SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");try {while(true){String ss = reader.readLine();if(!ss.equals("")){Calendar c = Calendar.getInstance();jt.append("client " + df.format(c.getTime()) + "\n");jt.append(ss + "\n");jt.setCaretPosition(jt.getText().length());}}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {if(reader != null)reader.close();if(socket != null)socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args){new sSocket();}}


客户端

import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Point;import java.awt.Window;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.io.Writer;import java.net.InetAddress;import java.net.MalformedURLException;import java.net.ServerSocket;import java.net.Socket;import java.net.URL;import java.net.URLConnection;import java.net.UnknownHostException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Collection;import java.util.Iterator;import java.util.Random;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JProgressBar;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.WindowConstants;import javax.swing.table.DefaultTableModel;public class test extends JFrame{private JTextArea jt = new JTextArea(15,20);private JTextField jf = new JTextField();private PrintWriter writer;private ServerSocket server;private Socket socket;public test(){init();connect();jf.addActionListener(new ActionListener() {SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubString s = jf.getText();writer.println(s + "\n");Calendar c = Calendar.getInstance();jt.append("Me " + df.format(c.getTime()) + "\n");jt.append(s + "\n");jt.setCaretPosition(jt.getText().length());jf.setText("");}});}public void connect(){jt.append("try to connect...\n");try {socket = new Socket(InetAddress.getLocalHost(), 8848);writer = new PrintWriter(socket.getOutputStream(),true);jt.append("connet success...\n");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void init(){setLocationRelativeTo(null);Container con = getContentPane();JScrollPane js = new JScrollPane(jt);con.add(js,"North");con.add(jf,"South");setVisible(true);setSize(200,400);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] agrs){new test();}}


0 0