常见Javase中的的网络编程

来源:互联网 发布:盘古ios9.2 for mac 编辑:程序博客网 时间:2024/06/03 17:45
ServerSocket:服务端
Socket:客户端
A电脑(客户端)---》B电脑(服务端)发送一句话,你在么?
A:Socket
B:ServerSocket


网络操作步骤:
step1:分别在两台电脑上,创建2个应用程序(网络应用程序)
服务端:ServerSocket:指明port
客户端:Socket:指明连接的服务端的ip,port


step2:服务端接收客户端的请求:获取一个对应的Socket,是和客户端Socket一一连接。
server.accept()-->Socket


step3:从Socket中获取IO流,做数据的交互。
getInputStream()-->InputStream
getOutputStream()-->OutputStream


字节为单位的输入/输出流--->包装


step4:读或写数据:
read()
write()


step5:关闭资源




需求1:客户端跟服务端传递:你在么?


需求2:服务端-->客户端:你谁啊


需求3:
服务端-->客户端:你谁啊(由键盘输入)
客户端-->服务器:我是小白兔(键盘输入)
服务端:
step1:读取键盘:输入流
step2:写给客户端:输出流
step6:读取客户端:输入流


客户端:
step3:读取服务端:输入流
step4:读取键盘输入:输入流
step5:写给服务端:输出流


需求4:客户端-服务端:多句聊天
客户端-->服务端说:你在么
服务端-->客户端说:我在的,你谁啊
客户端-->服务端说:我是长颈鹿
服务端-->客户端说:不认识
客户端-->服务端说:over


read()阻塞


需求5:服务端ECHO程序:回音


客户端-->服务器:"你在么"
服务器-->客户端:"ECHO:你在么"
客户端-->服务端:"今天天气不好"
服务端-->客户端:"ECHO:今天天气不好"


客户端:
step1:读取键盘
step2:写给服务端
step5:读取服务端来的回音


服务端:
step3:读取客户端传来的数据
step4:写给客户端:“ECHO:数据”






需求6:服务端同时处理多个客户端的ECHO程序
使用多线程




需求7:客户端-->服务端:一张图片







总结:
Socket编程:
A:主机
IP地址:真实的ip地址
127.0.0.1,localhost...
B:网络应用程序
QQ,微信,MSN。。。。
Demo01.....


port:端口号
int:0-256*256


5566
7788
7799
8888
12345
54321


一个端口号,只能够被一个网络应用程序占用。
C:协议:网络七层协议
TCP:面向连接的
发送数据,靠谱
UDP:面向无连接
无法保证数据的安全性






Java:
TCP:
Socket
ServerSocket


UDP:
DatagramSocket
0 0
原创粉丝点击