import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer {
public static void main(String[] args) {
ServerSocket serverSocket = null; // Create Server socket
Socket socket = null; // Create Client socket
try {
serverSocket = new ServerSocket(7777); // 7777=port number
socket = serverSocket.accept(); // Accept to Server
Sender sender = new Sender(socket);
Receiver receiver = new Receiver(socket);
sender.start();
receiver.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
public class Sender extends Thread {
Socket socket;
DataOutputStream out;
String name;
public Sender(Socket socket) {
this.socket = socket;
try {
out = new DataOutputStream(socket.getOutputStream());
name = "[" + socket.getInetAddress() + ":" + socket.getPort() + "]";
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
Scanner scanner = new Scanner(System.in);
while (out != null) {
try {
out.writeUTF(name + scanner.nextLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
public class Receiver extends Thread {
Socket socket;
DataInputStream in;
String name;
public Receiver(Socket socket) {
this.socket = socket;
try {
in = new DataInputStream(socket.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
Scanner scanner = new Scanner(System.in);
while (in != null) {
try {
System.out.println(in.readUTF()); // UTF is don't crash korea
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.net.Socket;
public class TcpClient {
public static void main(String[] args) {
String serverIP = "127.0.0.1"; // It's myself IP
try {
Socket socket = new Socket(serverIP, 7777);
System.out.println("Connect Server");
Sender sender = new Sender(socket);
Receiver receiver = new Receiver(socket);
sender.start();
receiver.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
소켓은 특정한 파이프의 끝, 파이프 이음쇠 또는 위생 기구를 수용하기 위해 확장한 것으로, 또 다른 파이프의 끝이나 파이프 이음쇠을 가리킨다. 또한 소켓(socket)은 통신선 또는 전기선, 전구 따위를 끼워 넣어 연결선과 접속하게 하는 연결기구를 가리킨다.