`
antjava
  • 浏览: 8798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java socket 一

    博客分类:
  • JAVA
阅读更多

看到项目中的mina框架,回想起了socket,做一个小例子回顾下,长期没有使用,忘记的差不多了。

预期目标:客户端向服务器端发送消息,服务器端读取信息,回复客户端,循环往复。

server端代码:



 client代码:



 回顾:

概念:
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。 
ocket API:
. Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。 
. getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例。 
. getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。 
注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。 
注意:
要是用IutputStream和OutputStream处理,很累,尤其是读数据和中文问题。而DataInputStream和DataOutputStream类很好的解决了这些问题。
java.lang.Object
  java.io.OutputStream
      java.io.FilterOutputStream
          java.io.DataOutputStream
writeUTF(String str) 方法
          以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。
readUTF() 
          参见 DataInput 的 readUTF 方法的常规协定。

ServerSocket server=new ServerSocket(9999);这里稍微要注意的是端口的分配必须是唯一的.因为端口是为了唯一标识每台计算机唯一服务的.另外端口号是从0~65535之间的,前1024个端口已经被Tcp/Ip 作为保留端口,因此你所分配的端口只能是1024个之后的.

之前写的麻烦的代码备份下来:

BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));

PrintWriter out=new PrintWriter(server.getOutputStream());


下来问题就来了,能穿文字,那么文件怎么传输,怎么解析呢。
如果同时开两个客户端,因为socket是阻塞的,所以只有等一个用户完成操作后,另一个用户才能进行操作。怎么解决呢。
mina待学习。

 

  • 描述: server
  • 大小: 19 KB
  • 描述: cilent
  • 大小: 50.2 KB
分享到:
评论

相关推荐

    java socket教程java socket教程

    一、Java Socket概述 Java Socket是Java提供的API,用于实现客户端与服务器之间的通信。Socket基于TCP/IP协议,确保数据在网络中的可靠传输。Socket通信包括两个主要组件:服务器端Socket和客户端Socket。服务器端...

    JAVA Socket 经典教程

    1. **Java Socket基础** - **Socket的概念**:Socket是网络通信中的一个端点,可以理解为两台机器间通信的桥梁。在Java中,Socket类代表TCP连接,ServerSocket类用于监听客户端的连接请求。 - **TCP与UDP的区别**...

    java socket 视频流转发socket

    Java Socket是Java编程语言中用于网络通信的核心API,它提供了低级别的、面向连接的、基于TCP/IP协议的网络通信能力。在"Java Socket 视频流转发Socket"这个主题中,我们将深入探讨如何使用Java Socket来处理视频流...

    Java Socket 聊天通信演示代码

    Java Socket 是一种网络通信协议,它是Java编程语言中实现客户端-服务器模型的基础。Socket 提供了低级别的、面向连接的、双向通信的网络接口,允许应用程序通过网络进行数据传输。在本示例中,我们将深入探讨Java ...

    JAVA Socket编程实现文件上传

    1. **Java Socket基础**:Socket是TCP/IP协议的应用层接口,用于实现两台机器之间的数据传输。在Java中,`java.net.Socket`和`java.net.ServerSocket`类是进行Socket通信的核心。ServerSocket监听特定端口,等待...

    java socket连接池 实现

    1. 初始化连接池:设置最大连接数、最小连接数、超时时间等参数,并预创建一部分Socket连接。 2. 获取连接:当应用程序需要建立Socket连接时,从连接池中获取一个闲置的Socket,如果没有,则等待直到有连接被归还或...

    java socket使用加密协议传输对象

    在Java开发中,Socket编程是一种常见的网络通信方式,它允许不同计算机上的应用程序通过网络进行交互。然而,对于涉及敏感信息的应用场景,如金融交易、个人隐私数据处理等,仅仅依靠Socket的基础功能是远远不够的,...

    java socket客户端断线重连

    java socket client 断线重连的简单实现 有什么意见可以提哦

    Java应用Socket通讯一对多

    Java应用Socket通讯一对多: ⑴、一对多; ⑵、通过list/map存储连接的socket对象,服务端向所有客户端群发消息,可以修改为服务端向指定客户端发送消息; ⑶、自动定时扫描客户端,移除断开的连接。

    java socket 客户端代码

    下面是一个简单的Java Socket客户端示例,用于连接到一个聊天服务器: ```java import java.io.*; import java.net.*; public class ChatClient { public static void main(String[] args) { try (Socket socket...

    java socket 经典版本

    Java Socket编程是网络编程的基础,它是Java API提供的一种用于实现客户端-服务器通信的接口。在Java中,Socket类和ServerSocket类是进行网络通信的核心组件。这个经典版本可能包含了一系列关于如何有效使用Java ...

    java socket实现smtp发送邮件,支持SSL

    Java Socket 实现 SMTP 发送邮件是一项常见的编程任务,尤其在自动化通知、系统间通信或用户交互中非常有用。SMTP(Simple Mail Transfer Protocol)是互联网上用于传输电子邮件的标准协议,而Java Socket则是Java...

    java socket源码解析

    java socket源码解析 java socket源码解析 java socket源码解析 java socket源码解析

    java socket 用户真实IP测试

    在`Socket-master`这个文件夹中,可能包含了一个Java Socket编程的示例项目,用于演示如何在Nginx TCP转发场景下获取用户真实IP。该项目可能包括了服务器端和客户端的代码,通过分析和运行这些代码,我们可以更深入...

    Java Socket 实现SMTP邮件发送,支持SSL/TSL

    1. **Java Socket类**:Java的`java.net.Socket`类是网络通信的基础,它代表了客户端与服务器之间的连接。创建Socket实例时,需要指定服务器的IP地址和端口号,然后就可以通过Socket的输入/输出流进行数据交换。 2....

    Java Socket网络编程.pdf

    1. 建立网络连接:客户端发起连接请求,服务器端监听并响应,生成新的Socket。 2. 打开Socket的输入/输出流:获取Socket的I/O流,为数据传输做好准备。 3. 数据读写:通过输入流读取数据,通过输出流写入数据。 4. ...

    java socket 中文教程

    Java Socket是Java编程语言中用于网络通信的核心API,它提供了低级别的、面向连接的、基于TCP/IP协议的网络通信服务。本教程将深入探讨Java Socket的相关知识点,旨在帮助开发者理解和掌握如何在Java环境中构建网络...

    Java socket的一个封装

    1. 满足具有Socket客户端需求的基本应用. 2. 满足具有Socket服务端的基本应用. 具备并发能力, 能满足可设定个数客户端连接. 参考个人博客: http://blog.csdn.net/ostrichmyself/article/details/6618349

    Java socket编程实现两台主机间的通信

    1. 打开一个 Socket 连接:在客户端,使用 Socket 类来建立连接,并指定主机名和端口号。在服务器端,使用 ServerSocket 类来监听客户端的连接。 2. 创建一个数据输入流:在客户端,使用 BufferedReader 类来读取...

Global site tag (gtag.js) - Google Analytics