socket网络编程
来源:互联网 发布:linux netsnmp 编辑:程序博客网 时间:2024/06/10 05:24
网络编程
1、 网络编程:针对TCP,UDP协议进行编程,qq,feiq,msn
网站(页)编程:baidu,sohu,sina
2、 网络概念:
网络功能:数据通信,资源共享
3、 协议:通信双方遵守的通信标准
****tcp:传输控制协议(面向连接的,比如:打电话)
udp:用户数据报协议(面向无连接的,比如:邮包,看视频)
ip:Internet protocol,网际协议(Ip地址 本地地址:127.0.0.1)
端口号:256*259,0-65535 建议使用1024以上(tcp和udp各有一份)
4、TCP编程java.net
套接字:两台机器间通信的端点
ServerSocket
Socket
c/s:client/server b/s:browser/server
6、客户端和服务端随意聊天
主线程:从控制台录入信息,发送到对方
子线程:从对方接收消息
练习:2、客户端输入三角形的三条边长,判断能否组成三角形,将三条边发送到服务器端,计算三角形面积,返回给客户端
a,b,c p = (a+b+c)/2 area=Math.sqrt(p*(p-a)*(p-b)*(p-c));(海伦公式)
常见问题:
会因为缺少换行标记而读不到内容
返回结束标记:s.shutdownInput( )此套接字的输入流置于“流的末尾”
s.shutdownOutput( )禁用此套接字的输出流
7、UDP:用户数据报协议
DatagramSocket:用来发送和接收数据报包
receive(dp):接收 send(dp):发送
DategramPacket:数据报包
发送端在数据报包应该指定接收端的地址和端口号
DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"), 11000);
8、群聊天:一个客户端发送,所有的客户端都能接收到
服务器:并不负责聊天,它负责接收客户端发来的消息,之后转发给所有的客户端
accept:侦听并接受客户端连接
使用集合保存所有与服务器连接的客户端,保存Socket
List<Socket>
主线程:接收客户端连接,并保存到集合中
子线程:接收客户端发来的消息,遍历集合,进行群发
成员变量:存储socket的集合 socket:当前连接的客户端
/*
* 4、点对点聊天
map<用户名,Socket>
主线程:接受客户端连接
Map集合在主线程中定义
子线程:接收客户端消息
a:注册:#zhangsan
截取用户名,之后将对应的Socket,存储到map集合中
遍历map集合,把注册的用户名组织成一个字符串,发给所有连 接的客户端
b:指定聊天:@zhangsan:hello
截取用户名和消息
根据用户名找到对应的Socket,发送消息
*/
图形用户界面(接口):GUI
JFrame:默认
FlowLayout:流式布局 ,默认居中
JPannel:默认流式布局
1、 网络编程:针对TCP,UDP协议进行编程,qq,feiq,msn
网站(页)编程:baidu,sohu,sina
2、 网络概念:
网络功能:数据通信,资源共享
3、 协议:通信双方遵守的通信标准
****tcp:传输控制协议(面向连接的,比如:打电话)
udp:用户数据报协议(面向无连接的,比如:邮包,看视频)
ip:Internet protocol,网际协议(Ip地址 本地地址:127.0.0.1)
端口号:256*259,0-65535 建议使用1024以上(tcp和udp各有一份)
4、TCP编程java.net
套接字:两台机器间通信的端点
ServerSocket
Socket
c/s:client/server b/s:browser/server
6、客户端和服务端随意聊天
主线程:从控制台录入信息,发送到对方
子线程:从对方接收消息
练习:2、客户端输入三角形的三条边长,判断能否组成三角形,将三条边发送到服务器端,计算三角形面积,返回给客户端
a,b,c p = (a+b+c)/2 area=Math.sqrt(p*(p-a)*(p-b)*(p-c));(海伦公式)
常见问题:
会因为缺少换行标记而读不到内容
返回结束标记:s.shutdownInput( )此套接字的输入流置于“流的末尾”
s.shutdownOutput( )禁用此套接字的输出流
7、UDP:用户数据报协议
DatagramSocket:用来发送和接收数据报包
receive(dp):接收 send(dp):发送
DategramPacket:数据报包
发送端在数据报包应该指定接收端的地址和端口号
DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"), 11000);
8、群聊天:一个客户端发送,所有的客户端都能接收到
服务器:并不负责聊天,它负责接收客户端发来的消息,之后转发给所有的客户端
accept:侦听并接受客户端连接
使用集合保存所有与服务器连接的客户端,保存Socket
List<Socket>
主线程:接收客户端连接,并保存到集合中
子线程:接收客户端发来的消息,遍历集合,进行群发
成员变量:存储socket的集合 socket:当前连接的客户端
/*
* 4、点对点聊天
map<用户名,Socket>
主线程:接受客户端连接
Map集合在主线程中定义
子线程:接收客户端消息
a:注册:#zhangsan
截取用户名,之后将对应的Socket,存储到map集合中
遍历map集合,把注册的用户名组织成一个字符串,发给所有连 接的客户端
b:指定聊天:@zhangsan:hello
截取用户名和消息
根据用户名找到对应的Socket,发送消息
*/
图形用户界面(接口):GUI
JFrame:默认
FlowLayout:流式布局 ,默认居中
JPannel:默认流式布局
0 0
- 网络编程---Socket编程
- 网络编程:Socket编程
- 网络编程(Socket编程)
- 网络socket编程指南
- 网络socket编程指南
- 网络Socket编程
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程指南
- 网络编程 socket
- 网络编程 socket
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程指南
- 网络socket编程
- 网络socket编程指南
- 网络socket编程指南
- Android 程序打包及签名
- [Android Pro] 内容提供者ContentProvider的基本使用
- TCP/IP、Http、Socket的区别
- ubuntu下启动tomcat
- 在Android中可以使用Gson解析JSON数据
- socket网络编程
- 重新定义用户界面体验:StoreFront3.0安装和配置
- Android英语单词记忆程序源码
- 智能农业
- 瀑布流照片墙实现
- 捕获全局异常
- 一键锁屏
- 开源强大侧栏菜单
- 图片倒影+圆角图片