没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Java 语言的 Socket 编程
chinawiny@yahoo.com.cn
摘 要:本文介绍了 Java 语言的 Socket 编程,包括服务端和客户端的编程方法,并提供了若
干实例。
一、什么是 Socket
Socket 接口是访问 Internet 使用得最广泛的方法。 如果你有一台刚配好 TCP/IP 协议的
主 机 , 其 IP 地 址 是 202.120.127.201 , 此 时 在 另 一 台 主 机 或 同 一 台 主 机 上 执 行 ftp
202.120.127.201,显然无法建立连接。因为“202.120.127.201”
这台主机没有运行 FTP 服务软件。同样, 在另一台或同一台主机上运行浏览软件如
Netscape,输入“http://202.120.127.201”,也无法建立连接。现在,如果在这台主机上运行
一个 FTP 服务软件(该软件将打开一个 Socket,并将其绑定到 21 端口),再在这台主机上
运行一个 Web 服务软件(该软件将打开另一个 Socket,并将其绑定到 80 端口)。这样,
在另一台主机或同一台主机上执行 ftp 202.120.127.201,FTP 客户软件将通过 21 端口来呼
叫主机上由 FTP 服务软件提供的 Socket,与其建立连接并对话。而在 netscape 中输入
“http://202.120.127.201”时,将通过 80 端口来呼叫主机上由 Web 服务软件提供的 Socket,与
其建立连接并对话。
在 Internet 上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服
务。每种服务都打开一个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务 。
Socket 正如其英文原意那样,象一个多孔插座。一台主机犹如布满各种插座的房间,每个
插座有一个编号,有的插座提供 220 伏交流电, 有的提供 110 伏交流电,有的则提供有线
电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。
在 Java 语言中,提供了相应的 Socket 编程方法。用 Java 既可以编写服务端的程序,又
可以编写客户端的程序。
二、编写服务端的程序
Java 中的 ServerSocket 类提供了服务端的 Socket 接口。为了使大家对编写服务端程序
有一个感性的认识,这里提供一个模拟 FTP 服务器的服务软件。 为了简洁起见,该程序只
提供了最简单的建立 FTP 连接的功能。
该程序如下:
import java.io.*;
import java.net.*;
public class ftpserver{
public static void main(String args[])
{ try{ ServerSocket ftpserver = new ServerSocket(21);
Socket fs=ftpserver.accept();
PrintStream fs_out=new PrintStream(fs.getOutputStream());
DataInputStream fs_in=new DataInputStream(fs.getInputStream());
fs_out.println("Welcome to the test server");
System.out.println("got follow infor from client:"+fs_in.readLine());
fs_out.println("331 Please send Password");
System.out.println("got follow infor from client:"+fs_in.readLine());
fs_out.println("230 Login OK");
System.out.println("got follow infor from client:"+fs_in.readLine());
}
catch(Exception e)
{ System.out.println(e);
}
}
}
为了测试该程序,可以在一台安装了 Windows 95 并配置了 TCP/IP 协议的微机上进行
(不一定要连入 Internet)。在该微机上安装 Java 编译软件如 JDK1.01 或 JDK1.02(可在
ftp://ftp.javasoft.com/pub/JDK-102-win32-x86.exe 下 载 ) , 将 上 述 程 序 存 入 文 件
ftpserver.java,执行“javac ftpserver.java”将其编译为字节码文件 ftpserver.class。这样,只要
在该微机上执行“java ftpserver.class” 以运行该 Java 程序,该微机便成为一个模拟的 FTP 服
务器。
测试该模拟 FTP 服务器,既可以在另一台联网的微机上进行, 也可以直接在该模拟
FTP 服务器上另开一个 DOS 窗口进行。运行命令行形式的 FTP 客户软件, 如在 Windows
XP 的 DOS 窗口执行:ftp 202.120.127.201(如果你的 Windows 95 中配置 TCP/IP 协议时用
的 IP 地址是其他值,需将这里的“202.120.127.201 ”改为相应的值),便可以进行对话。下
图是对话过程,其中带下划线的部分为用户的输入。
客户端
C:\xyx\java\sock\bak\ftp>ftp 202.120.127.201
Connected to 202.120.127.201.
Welcome to the test server
User (202.120.127.201:(none)): anonymous
331 Please send Password
Password:xyx@yc.shu.edu.cn
230 Login OK
ftp> bye
模拟 FTP 服务器
C:\xyx\java\sock\bak\ftp>java ftpserver
got follow infor from client:USER anonymous
got follow infor from client:PASS xyx@yc.shu.edu.cn
got follow infor from client:QUIT
下面我们来看一看该模拟 FTP 服务器的编程方法。在上面的程序中, 关键部分是下面
四句:
1. ServerSocket ftpserver = new ServerSocket(21);
2. Socket fs=ftpserver.accept();
3. PrintStream fs_out=new PrintStream(fs.getOutputStream());
4. DataInputStream fs_in=new DataInputStream(fs.getInputStream());
剩余13页未读,继续阅读
资源评论
- xueting9452013-04-11挺不错的,将如何使用socket编程说得很详尽,对新手会有很大的帮助。
礻申亻山
- 粉丝: 6
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MySQL是一种广泛使用的开源关系型数据库管理系统
- MySQL是一种广泛使用的开源关系型数据库管理系统
- MySQL是一种广泛使用的开源关系型数据库管理系统
- 012c3c44c465a099108e0d8570b86a70.zip
- 基于Java和JavaWeb的网上商城项目设计源码 - myshopping
- 基于Vue和JavaScript的书城项目设计源码 - Demo12.18
- wp2787778-map-wallpaper.jpg
- 基于Javascript的杜王町打工人仓库管理系统设计源码 - 杜王町打工人的仓库
- 基于C#的报销材料合并工具设计源码 - 报账材料合并
- 基于Java的驾校一点通后端服务设计源码 - jiaxiaoServer
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功