JAVA之TCP网络程序
2016-07-27 12:14
465 查看
单方向的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 block
e.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 block
e.printStackTrace();
}
try {
if(reader != null)
reader.close();
if(socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.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");
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String 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 block
e.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();
}
}
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 block
e.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 block
e.printStackTrace();
}
try {
if(reader != null)
reader.close();
if(socket != null)
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.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");
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String 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 block
e.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();
}
}
相关文章推荐
- JScript中的条件注释详解(转载自网络)
- IE中的条件注释(转载自网络)
- java学习之TCP客户端程序
- (OK)(paper-7) port mptcp on Android-4.4
- 五种I/O模型
- HttpURLConnection超时和IO异常处理
- 当Android遇见HTTP缓存代理服务器
- python网络编程学习笔记(二)
- [网络配置相关]——netstat命令
- 【环境配置】申请StartSSL免费CA证书,配置Nginx使用https访问,强制http跳转到https
- 使用okhttp 解析json数据
- retrofit2+okhttp3+ rxjava 遇到的问题及解决方案
- python网络编程学习笔记(一)
- 项目 网络请求返回InputStream
- POJ2516
- 为什么在训练神经网络时候比较适合使用交叉熵错误率,而不是分类错误率或是均方差
- HttpClient4.5常用设置
- java学习之完整tcp服务器模型
- AFN框架 之同时兼容Http和Https通讯 配置
- 网络编程:server服务器转发消息,多个客户端实现群聊