网络编程
来源:互联网 发布:如何用winhex数据恢复 编辑:程序博客网 时间:2024/05/16 05:16
1. 什么是网络通信协议:
2. 网络通信接口:
计算机网络中实现通信,必须有一定的约定,即通信协议。对速率,传输代码,代码结构,传输控制
步骤,出错控制等 制定标准。
2. 网络通信接口:
为了使两个点之间能进行对话,必须在他们之间建立通信工具 (即接口),使彼此之间能够进行Socket 编程:
信息交换。接口包括两部分。
硬件装置:实现节点之间的信息传送。
软件装置:规定双方进行通信的约定协议。
IP :提供独一无二的 IP 地址。
TCP/UDP
TCP:是专门设计用于在不可靠的因特网上,提供可靠的端到端的字节流通讯协议.它是一种面向连接的
协议,TCP连接是字节流而非报文流。可靠/慢
UDP:(USER data protocol)
UDP :向应用 程序提供了一种发送封装原始IP 数据报的方法,并且发送时,无需建立连接,是一种
不可靠的连接。不可靠/慢
三个点,支撑自己的发展。1.技术 2. 管理 3.沟通
TCP 通讯模型:
一般的网络编程,叫socket 编程。
两个java 应用程序员 可以通过一个双向的网络通讯连接实现数据交换,这个双向链路的端被称为
Socket.
socket 通常用来实现 client-server 连接。
java.net 包中定义两个类Socket 和ServerSocket 分别用来实现双向连接的client 端和server 端。
建立连接时,所需要的寻址信息是原程计算机的IP地址和端口号(Port number)。端口号用来,区分不同的网
不同的网路应用程序。端口一旦一个应用程序使用了,其它就无法使用了。我们使用端口号时,要使用1024 一下
的。1024 一下的操作系统可能随时征用。TCP端口和UDP端口是分开的。都是65536个。
从技术讲,只有TCP才有server 和client。
网路编程:的包都位于 java.net 包中。
写程序的时候,应该client 和server 同时写,启动的时候,应该先启server 后启动server
serverSocket
serverSocket 一旦启动,就需要不停的接收客户端的请求。需要制定端口。
socket client 端的socket 的端口 系统随机选择。
1 ,服务器端。新建一个serverSocket(端口号),serverSocket accept 方法,得到一个接到对方的一个通信, 包装程一个socket。Socket 可以取得InputStream ,OutputStream通过inputStream ,outputStream 就可以跟客户端发送数据了。package com.bjsxt.socket;import java.io.DataInputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class TestServerSocket {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubtry {ServerSocket ss=new ServerSocket(6666);while(true){Socket s =ss.accept();InputStream ins=s.getInputStream();DataInputStream dis=new DataInputStream(ins);System.out.println(dis.readUTF());// 阻塞式dis.close();ins.close();s.close();System.out.println("a client connected");}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
2.客户端:
public class TestSocket {
public static void main(String[] args){
try {
Socket s= new Socket("127.0.0.1",6666);
OutputStream output=s.getOutputStream();
DataOutputStream dos=new DataOutputStream(output);
dos.writeUTF("hello server");// 阻塞式
dos.flush();
dos.close();
output.close();
s.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- (转)提高你开发效率的十五个Visual Studio 2010使用技巧 .
- 第一个数据库程序纪念下
- notebook的使用
- Android 画图常用类
- java mysql 数据库连接类
- 网络编程
- 表达式求值的另一种方法
- 黑马程序员:基础加强之动态代理
- 鼠标位置的显示以及滚动条
- 程序员:如何写出杀手级简历
- 设计模式简述
- C# 获取文件大小,创建时间,文件信息,FileInfo类的属性表 .
- C#与Java互通AES算法加密解密
- 软件架构设计之Utility模块——DateTime