1.Server端代码
package TCP;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
public class Server {
private Socket socket;
private ServerSocket server;
private BufferedReader reader;
public static void main(String[] args) {
new Server().getServer();
}
void getServer(){
try{
server = new ServerSocket(8888);
server.setSoTimeout(1000*1000);
System.out.println("服务器套接字创建成功...");
while(true){
System.out.println("等待客户端连接...");
socket = server.accept();
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
getClientMessage();
}
}catch(SocketTimeoutException e){
System.out.println("超时啦!!!");
}catch(Exception e){
System.out.println("创建套接字失败...");
e.printStackTrace();
}
}
private void getClientMessage() {
try{
while(true){
System.out.println("客户机:"+reader.readLine());
}
}catch(Exception e){
e.printStackTrace();
}
try{
if(reader != null){
reader.close();
}
if(socket != null){
socket.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
2.Client端代码
package TCP;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Client extends JFrame{
private PrintWriter writer;
Socket socket;
private JTextArea ta = new JTextArea();
private JTextField tf = new JTextField();
Container cc;
public static void main(String[] args) {
Client c = new Client("向服务器发送数据");
c.setBounds(300,300,300,300);
c.setVisible(true);
c.connect();
}
public Client(String s) {
super(s);
cc = this.getContentPane();
cc.add(ta, "North");
cc.add(tf, "South");
tf.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
writer.println(tf.getText());
ta.append(tf.getText()+'\n');
tf.setText(" ");
}
});
}
private void connect(){
ta.append("尝试连接\n");
try{
socket = new Socket("192.168.21.1",8888);
writer = new PrintWriter(socket.getOutputStream(),true);
ta.append("完成连接\n");
InetAddress netAddress = socket.getInetAddress();
System.out.println(netAddress.getHostAddress());
System.out.println(socket.getPort());
}catch(Exception e){
e.printStackTrace();
}
}
}
一、TCP部分
1)核心类
2)核心API
二、UDP部分
1)核心类
2)核心API
三、