`

理解Socket

    博客分类:
  • java
阅读更多
服务器端代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

public static void main(String[] args) {
ServerSocket ss = null;
Socket socket = null;
BufferedReader br = null;
try {
ss = new ServerSocket(6000);
while(true) {
socket = ss.accept();
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientName = br.readLine();
System.out.println("Server Message: Hello, " + clientName + ", welcome you to the website.");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

}

客户端代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {

public static void main(String[] args) {
Socket socket = null;
BufferedReader br = null;
PrintWriter out = null;
try {
socket = new Socket("localhost", 6000);
br = new BufferedReader(new InputStreamReader(System.in));
//第二个参数为true,表示保留之前的值
out = new PrintWriter(socket.getOutputStream(), true);
System.out.println("请输入你名字:");
out.write(br.readLine());
out.flush();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
out.close();
}
}
}

}
分享到:
评论

相关推荐

    C#写的超简单的局域网对战游戏 理解socket

    通过这个项目,我们可以学习和理解网络编程的核心概念——Socket编程,以及如何利用C#进行2D图形绘制。 Socket编程是网络通信的基础,它提供了一种在不同计算机之间建立连接并交换数据的方法。在C#中,我们通常使用...

    socket概念的理解

    socket 概念的理解 _socket_ 是系统提供的用于网络通信的方法,实质上不是一种协议,而是给程序员提供了一个发送消息的接口。Socket 描述了一个 IP、端口对,简化了程序员的操作,知道对方的 IP 以及 PORT 就可以给...

    科学知识:理解socket

    【科学知识:理解Socket】 Socket,又称套接字,是计算机网络编程中的一个重要概念,它为网络中的进程间通信提供了一种标准接口。Socket源于BSD UNIX操作系统,它允许两个网络上的程序通过网络通信链路进行数据交换...

    socket_ftp_socket_

    首先,我们需要理解Socket的基本概念。Socket是网络通信的一种接口,它为应用程序提供了创建、管理和通信网络连接的方法。在TCP/IP协议栈中,Socket分为两种类型:流式Socket(TCP)和数据报Socket(UDP)。在这个...

    matlab环境下socket通信

    首先,要理解Socket通信的基本概念。Socket可以视为通信的两端,一个作为服务器端(Server Socket),等待客户端的连接请求;另一个作为客户端端(Client Socket),主动发起连接请求。一旦连接建立,双方就可以通过...

    c# socket设置代理

    首先,我们需要理解Socket类的基本概念,它是网络编程的基础,允许我们通过TCP或UDP协议与远程服务器进行低级别的交互。 ### Socket类简介 Socket是网络编程中的一个抽象概念,它代表了应用程序与网络协议栈之间的...

    Socket工具SocketTool

    通过阅读这份手册,开发者可以深入理解Socket编程原理,掌握如何创建、连接、发送和接收数据,以及处理网络异常等常见问题。 项目文件中,"SocketTool V4.exe"是主程序文件,用于运行SocketTool工具;"head.js"和...

    SOCKET+多线程例子

    首先,让我们深入理解Socket。Socket是网络通信中的一个接口,它允许两个运行在不同机器上的程序通过网络进行通信。在TCP/IP协议栈中,Socket提供了一种进程间的通信方式,允许数据在网络中传输。Socket分为服务器端...

    C# Socket连接池

    首先,理解Socket连接池的概念。Socket是网络通信的基础,每个Socket实例代表一个网络连接。当频繁创建和销毁Socket时,会消耗大量系统资源,如内存和CPU。为了解决这个问题,引入了连接池,即预先创建一定数量的...

    socket转发、socket与RS485互转

    首先,我们来理解Socket转发。Socket转发,也称为Socket代理或Socket隧道,是一种网络通信技术,用于将一个网络上的数据包通过特定的Socket连接转发到另一个网络上。这种技术常用于网络安全、负载均衡、数据传输优化...

    win-socket-demo_socket编程_socket_windows_DEMO_

    首先,我们要理解Socket的基本概念。Socket可以看作是两台计算机之间通信的端点,它是进程之间通过网络进行通信的一种接口。在Windows系统中,通常使用伯克利套接字(Berkeley Sockets)API来创建和管理Socket。 ...

    Socket Client 测试工具

    此外,对于学习网络编程的新手来说,此类工具也是很好的学习辅助,可以帮助他们直观地理解Socket通信的过程。 总之,Socket客户端测试工具是网络开发者不可或缺的利器,通过它我们可以更高效地测试和调试网络应用,...

    C# Socket 通信,客户端服务器端

    首先,我们要理解Socket的基本概念。Socket,也称为套接字,是网络通信中的一个接口,它允许应用程序通过网络发送和接收数据。在C#中,我们可以使用System.Net.Sockets命名空间中的Socket类来创建和操作Socket对象。...

    简单的socket程序 可以直接编译运行

    这个压缩包提供的是一个简单的Socket程序示例,包括服务器端(Server.c)和客户端(Client.c)的源代码,可以直接编译运行,非常适合初学者学习理解Socket的工作原理。 一、Socket基本概念 Socket,通常称为套接字,是...

    精通JAVA_SOCKET编程技术

    通过理解Socket的工作原理和Java中的具体实现细节,开发者可以构建高效稳定的网络应用程序,满足各种业务需求。此外,熟悉Socket编程也有助于深入理解网络协议栈的工作机制,提升整体的网络编程能力。

    Linux或Windows下判断socket连接状态

    首先,理解Socket的基本概念是必要的。Socket是应用层与传输层之间的接口,它允许应用程序通过TCP/IP协议栈与其他计算机进行通信。在TCP协议中,连接是基于三次握手建立的,而断开连接则需要四次挥手。因此,判断...

    SocketTool工具

    - **教学演示**:在教授网络编程课程时,SocketTool能帮助学生直观理解Socket的工作原理和网络通信过程。 总的来说,SocketTool是一个强大的辅助工具,它降低了网络编程的门槛,提高了开发效率。无论是初学者还是...

    SocketTool,socket测试工具

    SocketTool是一款专为开发者设计的Socket测试工具,它主要用于测试TCP和UDP协议的网络通信功能。在进行网络编程时,Socket是基础的...通过熟练使用SocketTool和理解Socket的工作原理,可以更好地应对各种网络编程挑战。

    开源的Socket库,C++实现

    首先,理解Socket的基本概念至关重要。Socket是网络编程中的一个接口,允许两个进程通过网络进行通信。在C++中,Socket API提供了创建、连接、监听、接受和发送数据等功能。它的工作原理可以简化为:一个Socket作为...

Global site tag (gtag.js) - Google Analytics