没有合适的资源?快使用搜索试试~ 我知道了~
计算机网络编程专业课程设计.doc
0 下载量 161 浏览量
2022-12-16
03:29:38
上传
评论
收藏 270KB DOC 举报
温馨提示
试读
15页
计算机网络编程专业课程设计.doc
资源推荐
资源详情
资源评论
课题一:基于 TCPSocket 通讯编程
一、课程设计目标:
1.能够深刻了解 socket 编程思想;
2.从实现层面了解 TCP 和 UDP 链接不一样。
二、课程设计环境:
1.windows XP 或 win7 系统;
2.配置有 java 虚拟机环境变量;
3.编写 java 程序软件 Eclipse。
三、课程设计原理:
Windows Sockets 规范本意在于提供给应用程序开发者一套简单 API,
并让各家网络软件供给商共同遵守。另外,在一个特定版本 Windows 基础上,
Windows Sockets 也定义了一个二进制接口(ABI),以此来确保应用 Windows
Sockets API 应用程序能够在任何网络软件供给商符合 Windows Sockets 协议
实现上工作。所以这份规范定义了应用程序开发者能够使用,而且网络软件
供给商能够实现一套库函数调用和相关语义。 遵守这套 Windows Sockets 规
范网络软件,我们称之为 Windows Sockets 兼容,而 Windows Sockets 兼容
实现提供者,我们称之为 Windows Sockets 提供者。一个网络软件供给商必
需百分之百地实现 Windows Sockets 规范才能做到现 Windows Sockets 兼容。
四、课程设计内容:
(1)网络程序初始化,服务器和用户端 WinSock API 均要求在调用其它
WinSock 函数以前先调用 WSAStartUp 函数初始化。
(2)创建套接字 Socket()。
(3)配置并开启套接字。
(4)经过 Socket 发送和接收数据。
(5)程序结束时必需关闭 Socket,使用和 WSAStartUp()相对应函数
WSACleanUp(),释放所分配内部缓冲区和其它资源。
代码:
EchoThreadServer:
import java.net.*;
public class EchoThreadServer {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ServerSocket server = null;
Socket client = null;
InetAddress remAdd = null;
server = new ServerSocket(12345);
boolean f = true;
while (f) {
System.out.println("连接正在建立,请等候……");
client = server.accept();
System.out.println(" 用 户 端 IP 地 址 和 端 口 号 是 :" +
client.getLocalSocketAddress());
new Thread(new EchoThread(client)).start();
}
server.close();
}
}
EchoThread:
import java.io.*;
import java.net.Socket;
public class EchoThread implements Runnable{
private Socket client = null;
public EchoThread(Socket client)
{
this.client = client;
}
public void run()
{
BufferedReader buf = null;
PrintStream out = null;
BufferedReader input = null;
try {
out = new PrintStream(client.getOutputStream());
buf = new BufferedReader(new
InputStreamReader(client.getInputStream()));
input = new BufferedReader(new
InputStreamReader(System.in));
boolean flag = true ;
while(flag)
{
String str = buf.readLine();
System.out.println("Client:" + str);
if (str == null || "".equals(str)) {
flag = false;
}
else if("goodbye".equals(str)) {
flag = false;
}
else {
out.println("Echo:" + str);
}
}
client.close();
} catch (Exception e) {
// TODO: handle exception
剩余14页未读,继续阅读
资源评论
zzzzl333
- 粉丝: 686
- 资源: 7万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功