天天写BS的东西,突然感到自己基础功底差了点,看来的恶补一番。
单线程的Socket
java 代码
- package
com.wangtong.network;
-
- import
java.io.BufferedReader;
- import
java.io.IOException;
- import
java.io.InputStreamReader;
- import
java.io.PrintWriter;
- import
java.net.ServerSocket;
- import
java.net.Socket;
-
- public
class
ServerSocket {
-
-
public
static
void
main(String[] args) {
-
try
{
- createServerSocket();
- }
catch
(IOException e) {
-
- e.printStackTrace();
- }
- }
-
-
private
static
void
createServerSocket()
throws
IOException {
- ServerSocket serverSocket =
new
ServerSocket(
8189
);
- Socket socket = serverSocket.accept();
-
while
(
true
) {
- BufferedReader in =
new
BufferedReader(
new
InputStreamReader(socket
- .getInputStream()));
- PrintWriter out =
new
PrintWriter(socket.getOutputStream());
-
while
(
true
) {
- String str = in.readLine();
- System.out.println(
"server:"
+ str);
- out.println(
"client receive"
+ str);
- out.flush();
-
if
(str.equals(
"exit"
))
-
break
;
- }
- socket.close();
-
- }
- }
-
- }
java 代码
- package
com.wangtong.network;
-
- import
java.io.BufferedReader;
- import
java.io.IOException;
- import
java.io.InputStream;
- import
java.io.InputStreamReader;
- import
java.io.OutputStream;
- import
java.io.PrintWriter;
- import
java.net.Socket;
- import
java.net.UnknownHostException;
- import
java.util.Scanner;
-
-
- public
class
ClientSocket {
-
private
static
final
String URL =
"localhost"
;
-
-
private
static
final
int
PORT =
8189
;
-
-
-
-
-
-
-
-
-
-
private
static
void
createClientSocket()
throws
UnknownHostException,
- IOException {
- Socket clientSocket =
new
Socket(URL, PORT);
- BufferedReader in =
new
BufferedReader(
new
InputStreamReader(
- clientSocket.getInputStream()));
- PrintWriter out =
new
PrintWriter(clientSocket.getOutputStream());
- BufferedReader wt =
new
BufferedReader(
new
InputStreamReader(System.in));
-
while
(
true
) {
- String str = wt.readLine();
- out.println(
"client send:"
+ str);
- out.flush();
-
if
(str.equals(
"end"
)) {
-
break
;
- }
- System.out.println(in.readLine());
- }
- clientSocket.close();
-
- }
-
-
public
static
void
main(String[] args) {
-
-
try
{
- createClientSocket();
- }
catch
(UnknownHostException e) {
-
- e.printStackTrace();
- }
catch
(IOException e) {
-
- e.printStackTrace();
- }
- }
- }
分享到:
相关推荐
首先,我们来详细探讨单线程Socket通信。在单线程模型中,服务器端只有一个线程处理所有客户端的连接请求。当一个客户端发起连接请求时,服务器端创建一个Socket实例,并通过这个Socket实例与客户端进行通信。这种...
Java实现的简单Socket通信是网络编程中的基础技术,主要用于设备间的双向数据传输。在这个场景中,我们有两个窗口,一个作为服务器端,另一个作为客户端,它们通过TCP协议进行通信。TCP是一种面向连接的、可靠的传输...
但是,对于初学者来说,理解单线程阻塞模型是学习网络编程的基础,有助于深入理解Socket通信的工作原理。 此外,源码分析可以帮助我们更好地理解Socket通信的细节,例如异常处理、连接超时、资源管理等。通过阅读和...
Java Socket 多线程是网络编程中的一个重要概念,它结合了Java的并发处理能力和Socket通信技术,使得服务器能够同时处理多个客户端的连接请求。在Java中,Socket是用于在网络环境中进行双向通信的类,而多线程则允许...
在Java中,`java.net.Socket`和`java.net.ServerSocket`类是实现Socket通信的核心类。ServerSocket用于服务器端,监听特定端口,等待客户端的连接请求;Socket则代表客户端,它与服务器建立连接后,可以进行数据的...
在这个场景中,我们关注的是如何使用单线程Socket编程来实现从MySQL数据库中读取数据。首先,我们需要理解Socket的基本概念,然后深入探讨如何构建Socket客户端和服务器,以及如何与MySQL数据库进行交互。 **Socket...
Java多线程Socket通信程序是实现并发网络通信的关键技术,特别是在构建高效、可扩展的服务器端应用时。在这个场景中,我们看到一个用于移动短信接口的解决方案,它利用了Java的多线程特性来处理来自多台电脑的并发...
在Java中,非阻塞式Socket通信基于NIO(Non-blocking Input/Output)机制,它与传统的BIO(Blocking I/O)不同,BIO在等待数据时会阻塞线程,而NIO则允许线程在没有数据可读或可写时继续执行其他任务,从而提高系统...
本文将深入探讨"异步和多线程socket通讯"这一主题,基于提供的描述和标签,我们将讨论如何利用多线程和异步机制来提升socket通信的效率和响应性。 首先,Socket是一种在应用程序与网络服务之间建立连接的接口,它...
在这个“基于java NIO的socket通信demo”中,我们将探讨如何使用NIO进行服务器和客户端的Socket通信,并解决通信过程中的字符集乱码问题。 首先,我们来看`NioServer.java`。这个文件中包含了一个基于NIO的服务器端...
简单大循环 单线程实现通信 1. TCP连接通信 2. Server先监听,等待Client连接 3. 双方都可以发"Stop!"停止通信,但此程序Client只会停止,Server可以一直监听,即断开后,Client可以再次连接 4. 不能一对多通信,...
【Java单线程聊天室】是一个基础的网络通信项目,主要使用了Java的Socket编程来实现客户端与服务器端的交互。对于Java初学者而言,这是一个很好的实践案例,可以帮助理解网络编程的基本原理和Java多线程的基本概念。...
Java中的Socket通信是网络编程的基础,它允许两个应用程序通过TCP/IP进行双向通信。在这个场景下,我们讨论的是一个单交互的Socket通信实现,意味着客户端发送一个请求,服务器响应后,通信结束。以下是对这个主题的...
Java基于Socket的网络通信是Java编程领域中的一个重要知识点,它涉及到如何通过网络在不同设备间交换数据。Socket在计算机网络中扮演着客户端和服务器之间的桥梁角色,使得它们能够相互通信。在这个Java项目中,我们...
在Java中,`java.net.Socket`类和`java.net.ServerSocket`类提供了Socket通信的基础框架。Socket通信通常涉及以下几个步骤: 1. **服务器端**:创建一个`ServerSocket`,监听指定的端口号,等待客户端的连接请求。 ...
本压缩包文件"TCP-socket.zip"包含了一个基于Java实现的TCP Socket通信客户端和服务端,且支持多线程并发连接。这个学习资源可以帮助我们深入了解Java中的TCP Socket编程和多线程技术。 首先,让我们来看看TCP协议...
本示例将介绍如何使用Java Socket实现简单的单线程通信。 首先,我们来看服务器端(Server)的实现。服务器端需要监听特定的端口,等待客户端的连接请求。在Java中,`ServerSocket`类用于创建监听端口的服务器。...
总结来说,Android中的Socket通信涉及网络编程、多线程、数据处理等多个方面,需要综合运用Java和Android的相关知识。理解并熟练掌握Socket通信,对于开发实时交互的应用,如聊天、游戏等,至关重要。通过实践和不断...
Java线程和Socket是两种在Java编程中至关重要的概念,特别是在构建高性能、高并发的网络应用程序时。线程是程序中的执行流,而Socket则提供了在网络间进行进程间通信(IPC)的能力。让我们深入探讨这两个主题及其在...