java Socket通信原理

java Socket通信原理,第1张

具体如下:

首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层。其中UDP是一种面向无连接的传输层协议。UDP不关心对端是否真正收到了传送过去的数据。

如果需要检查对端是否收到分组数谈搜据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用在分组数据较少或多播、广播通信以及视频通信等多媒体领域。

在这里芹侍粗我们不进行详细讨论,这里主要讲解的是基于TCP/IP协议下的socket通信。

socket是基于应用服务与TCP/IP通信之间的一个抽象,他将TCP/IP协议里面复杂的通信逻辑进行分装。

服务端初始化ServerSocket,然后对指定的端口进行绑定,接着对端口及进行监听,通过调用accept方法阻塞。

此时,如果客户端有一个socket连接到服务端,那么服务端通过监听和accept方法可以与客户端进行连接。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面嫌镇向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

第一,程序是通过分时进行服务的。就是说一个程序监听一个端口,第一秒可以从埋春别的地方来一个包,第二秒可以从另宏液肆一个地方来一个包。

第二,每蔽轿个socket都会有包发送来的ip地址和端口号,服务器向这个ip对应机器的端口发送数据以回应对方。

Java Socket共享在使用的时候有很多的问题需要我们解决 其实有不少的问题都是在源代码中可以找到答案的 下面我们就来看看如何才能更好的使用有关的Java <>如槐孝明渣 Socket共享服务

在实际的网络环境里 同一时间只对一个用户服务是不可行的 一个优秀的网络服务程序除了能处理用户的输入信息 还必须能够同时响应多个客户端的连接请求 在Java Socket共享中 实现以上功能特点是非常容易的

Java Socket共享的设计原理

主程序监听一端口 等待客户接入同时构造一个线程类 准备接管会话 当一个Socket会话产生后 将这个会话交给线程处理 然后主程序继续监听 运用Thread类或Runnable接口来实现是不错的办法

{实现消息共享}

import java io *

import *

public class Server extends ServerSocket

{

private static final int SERVER_PORT =

public Server() throws IOException

{

super(SERVER_PORT)

try

{

while (true)

{

Socket socket = accept()

new CreateServerThread(socket)

}

}

catch (IOException e)

{}

finally

{

close()

}

}

// CreateServerThread

class CreateServerThread extends Thread

{

private Socket client

private BufferedReader in

private PrintWriter out

public CreateServerThread(Socket s) throws IOException

{

client = s

in = new BufferedReader(new InputStreamReader(client getInputStream() GB ))

out = new PrintWriter(client getOutputStream() true)

out println( Wele )

start()

}

public void run()

{

try

{

String line = in readLine()

while (!line equals( bye ))

{

String msg = createMessage(line)

out println(msg)

line = in readLine()

}

out println( See you bye! )

client close()

}

catch (IOException e)

{}

}

private String createMessage(String line)

{

xxxxxxxxx

}

}

public static void main(String[] args) throws IOException

 渣稿  {

new Server()

}

}

lishixinzhi/Article/program/Java/hx/201311/25608


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12209884.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存