¸üÐÂʱ¼ä:2023Äê04ÔÂ19ÈÕ13ʱ48·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

¡¡¡¡TCPÕ³°üÊÇÖ¸·¢ËÍ·½ÔÚ·¢ËÍÊý¾Ýʱ£¬½«¶à¸öСÊý¾Ý°üÕ³ºÏ³ÉÒ»¸ö´óÊý¾Ý°ü·¢Ë͵½½ÓÊÕ·½£¬»òÕß½ÓÊÕ·½ÔÚ½ÓÊÕÊý¾Ýʱ£¬½«Ò»¸ö´óÊý¾Ý°ü²ð·Ö³É¶à¸öСÊý¾Ý°ü¡£ÕâÖÖÇé¿ö³£³£·¢ÉúÔÚTCPÊý¾ÝÁ÷´«ÊäµÄ¹ý³ÌÖС£
¡¡¡¡TCPÐÒé±¾ÉíÊÇÒ»ÖÖ»ùÓÚÁ÷µÄ´«ÊäÐÒ飬Ëü²¢Ã»ÓÐÏñUDPÄÇÑùµÄÊý¾Ý±¨ÎĸÅÄî¡£ÔÚ·¢ËÍ·½·¢ËÍÊý¾Ýʱ£¬TCP»á½«Êý¾Ý·Ö³ÉÒ»¸ö¸öСµÄTCPÊý¾Ý°ü½øÐд«Ê䣬²¢ÇÒ²»±£Ö¤ÕâЩСµÄTCPÊý¾Ý°ü°´ÕÕ·¢ËÍ˳Ðòµ½´ï½ÓÊÕ·½¡£ÔÚ½ÓÊÕ·½½ÓÊÕÊý¾Ýʱ£¬TCP»á½«½ÓÊÕµ½µÄÊý¾Ý°´ÕÕTCPÊý¾Ý°üµÄ˳ÐòÖØÐÂ×éºÏ³ÉÒ»¸öÍêÕûµÄÊý¾ÝÁ÷¡£
¡¡¡¡ÓÉÓÚTCP´«ÊäµÄÊý¾ÝÊÇÒ»¸öÁ÷£¬¶ø²»ÊÇÊý¾Ý°ü£¬ËùÒÔÔÚÊý¾Ý·¢ËͺͽÓÊյĹý³ÌÖУ¬»á´æÔÚÊý¾Ý°üµÄ´óСºÍÊýÁ¿²»Ò»ÖµÄÇé¿ö£¬´Ó¶øµ¼ÖÂTCPÕ³°üµÄÎÊÌâ¡£
¡¡¡¡ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄJava´úÂëÑÝʾTCPÕ³°üµÄÎÊÌ⣺
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
new Thread(() -> {
try {
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, len));
outputStream.write(buffer, 0, len);
outputStream.flush();
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
}
}
¡¡¡¡ÉÏÊö´úÂëÖУ¬ÎÒÃÇ´´½¨ÁËÒ»¸öTCP·þÎñÆ÷£¬¼àÌý±¾µØµÄ8888¶Ë¿Ú¡£ÔÚ½ÓÊÕµ½¿Í»§¶ËµÄÁ¬½ÓÖ®ºó£¬ÎÒÃÇʹÓÃÒ»¸öеÄÏß³ÌÀ´´¦ÀíÕâ¸öÁ¬½Ó¡£ÔÚÕâ¸öÏß³ÌÖУ¬ÎÒÃÇͨ¹ýÊäÈëÁ÷´Ó¿Í»§¶Ë½ÓÊÕÊý¾Ý£¬²¢ÇÒͨ¹ýÊä³öÁ÷½«Êý¾Ý·¢Ëͻؿͻ§¶Ë¡£
¡¡¡¡ÏÖÔÚ£¬ÎÒÃÇʹÓÃÁíÍâÒ»¸öJava³ÌÐòÀ´Ä£ÄâÒ»¸ö¿Í»§¶ËÁ¬½Ó£º
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class TcpClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8888);
OutputStream outputStream = socket.getOutputStream();
for (int i = 0; i < 10; i++) {
String message = "Hello, World!";
byte[] buffer = message.getBytes();
outputStream.write(buffer);
outputStream.flush();
}
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
System.out.println(new String(buffer, 0, len));
socket.close();
}
}
¡¡¡¡ÉÏÊö´úÂëÖУ¬ÎÒÃÇ´´½¨ÁËÒ»¸öTCP¿Í»§¶Ë£¬Á¬½Óµ½±¾µØµÄ8888¶Ë¿Ú¡£ÔÚÁ¬½Ó½¨Á¢Ö®ºó£¬ÎÒÃÇÏò·þÎñÆ÷·¢ËÍ10¸ö"Hello, World!"×Ö·û´®¡£ÔÚ·¢ËÍÍêÕâЩÊý¾ÝÖ®ºó£¬ÎÒÃÇ´Ó·þÎñÆ÷¶ËµÄ½Ç¶ÈÀ´¿´£¬µ±½ÓÊÕµ½¿Í»§¶Ë·¢Ë͵ÄÊý¾Ýʱ£¬ÎÒÃÇʹÓÃÒ»¸ö1024×Ö½Ú´óСµÄ»º³åÇøÀ´½ÓÊÕÊý¾Ý¡£ÔÚ¶ÁÈ¡Êý¾Ýʱ£¬ÎÒÃÇʹÓÃÒ»¸öwhileÑ»·À´²»¶Ï´ÓÊäÈëÁ÷ÖжÁÈ¡Êý¾Ý£¬²¢½«ÆäÊä³öµ½¿ØÖÆÌ¨ÉÏ¡£ÔÚÊä³öÊý¾Ýʱ£¬ÎÒÃDz¢Ã»ÓÐ×öÈκεÄÊý¾Ý´¦Àí£¬¶øÊÇÖ±½Ó½«Êý¾ÝÊä³öµ½¿ØÖÆÌ¨ÉÏ¡£
¡¡¡¡ÔÚ¿Í»§¶Ë·¢ËÍÊý¾Ýʱ£¬ÎÒÃÇ·¢ËÍÁË10¸ö"Hello, World!"×Ö·û´®¡£ÓÉÓÚTCPÊÇÒ»ÖÖ»ùÓÚÁ÷µÄÐÒ飬ËùÒÔÕâЩÊý¾Ý¿ÉÄܻᱻ×éºÏ³ÉÒ»¸ö´óµÄÊý¾Ý°ü·¢Ë͵½·þÎñÆ÷¶Ë¡£ÔÚ½ÓÊÕÊý¾Ýʱ£¬·þÎñÆ÷¶Ëÿ´Î´ÓÊäÈëÁ÷ÖжÁÈ¡1024¸ö×Ö½Ú´óСµÄÊý¾Ý£¬È»ºóÖ±½ÓÊä³öµ½¿ØÖÆÌ¨ÉÏ¡£Èç¹û¿Í»§¶Ë·¢Ë͵ÄÊý¾Ý°üµÄ´óССÓÚ1024×Ö½Ú£¬ÄÇôÕâЩÊý¾Ý¿ÉÄÜ»áºÍºóÃæµÄÊý¾ÝÒ»Æð±»¶ÁÈ¡£¬´Ó¶øµ¼ÖÂÕ³°üµÄÎÊÌâ¡£
¡¡¡¡ÎªÁËÑÝʾÕâ¸öÎÊÌ⣬ÎÒÃÇ¿ÉÒÔ½«¿Í»§¶Ë·¢Ë͵ÄÊý¾Ý°ü´óС¸ÄΪ±È»º³åÇø´óССµÄÊý¾Ý£¬ÀýÈ磺
for (int i = 0; i < 10; i++) {
String message = "Hello, World!";
byte[] buffer = message.getBytes();
outputStream.write(buffer, 0, buffer.length / 2);
outputStream.write(buffer, buffer.length / 2, buffer.length / 2);
outputStream.flush();
}
¡¡¡¡ÔÚÉÏÊö´úÂëÖУ¬ÎÒÃǽ«Ã¿¸ö"Hello, World!"×Ö·û´®²ð·Ö³ÉÁ½¸ö´óСÏàµÈµÄ×Ö½ÚÊý×é·¢Ë͵½·þÎñÆ÷¶Ë¡£ÕâÑù£¬Ã¿¸öÊý¾Ý°üµÄ´óС¾Í»áСÓÚ1024×Ö½Ú¡£ÔËÐпͻ§¶Ë³ÌÐòºó£¬ÎÒÃÇ¿ÉÒÔ¿´µ½·þÎñÆ÷¶ËÊä³öÁËһЩÀàËÆÓÚÒÔϵÄÊä³ö£º
Hello, Wo rld!Hello, World!Hel lo, World!H ello, Worl d!Hello, Wo rld!Hello, World!Hello , World!Hel lo, World!H ello, Worl d!Hello, Wo rld!Hello, World!Hello , World!Hel lo, World!
¡¡¡¡´ÓÉÏÃæµÄÊä³öÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½"Hello, World!"×Ö·û´®±»²ð·Ö³ÉÁ˶à¸ö²¿·Ö£¬´Ó¶øµ¼ÖÂÁËTCPÕ³°üµÄÎÊÌâ¡£
±±¾©Ð£Çø