十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用JAVA来进行网络编程
创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元建昌做网站,已为上家服务,为建昌各地企业和个人服务,联系电话:18982081108
1)
由于客户端通过IE同服务器建立联系,所以客户端使用Applet,服务器端使用Application;
2)
服务器应设置成多线程,应答多个客户的请求;
3)
两端通信使用SOCKET机制。
2.2客户机/服务器通信的动机
客户机-服务器范例的基本动机来自聚集问题。
为了理解这一问题,设想一个人试图在分离的机器上启动两个程序并让它们进行通
信,还要记住,计算机的运行要比人的速度快许多数量级。在某人启动第一个程序后,
该程序开始执行并向其对等程序发送消息,在几个微妙内,它便发现对等程序还不存在,
于是就发出一条错误消息,然后退出。在这时,某个人启动了第二个程序,不幸的是,当第二个程序开始执行时,它发现对等程序已经终止执行了,即便是两个程序连续重新试着通信,
但由于它们每个程序执行的速度那么快。因而它们
在同一瞬间向对方发送消息的概率是很低的。
客户机-服务器模型是这样解决这种聚集问题的。它要求在任何一对进行通信的应用进程中,有一方必须在启动执行后(无限期地)等待对方的联系,这种解决方案是重要的,因为TCP/IP自己对入呼叫通信是不会响应的。
由于TCP/IP并不是提供在一个报文到达后自动创建运行程序的任何机制,因此一个程序必须在任一请求到来前就在那里等待以接受通信。
因此,为确保计算机已准备好了进行通信,多数系统管理员都安排通信程序在操作系统引导时就自动启动。每个程序都一直运行下去,以便等待下一个服务请求的到来(此服务是该程序提供的)
望采纳!!!
你说的我明白。如果真正使用alohal协议的时候,所有的机器都可以检测网络电平变化的是吧?但是使用Java编写模拟程序的话,我们并不能可能检测电平的变换,只能通过一定的手段来模拟这个过程。如果你将一个包裹群发,这样所有的机器都可以接受这个包,这样就可以做到所有机器模拟检测电平变化的这个要求。我认为这个是最有说服力的模拟方法了。
线程需要使用Thread类型,重写里面的run函数,调用start()启动线程,具体可以搜索一把Thread,例子遍地都是。
UDP协议使用Socket类型,初始化的时候参数里面绑定(或者初始化好以后直接调用bind绑定端口,一般输出不用绑定,监听的时候需要绑定)。调用里面的getOutputStream得到输入流。调用getInputStream得到输入流。
OutputStream:输出流,用于向网络中输出数据。调用其中的write函数进行输出,函数的参数就是输出的byte数组。
InputStream: 输入流,用于接受网络里面的数据。调用其中的read可以得到输入的包。
String:你要输出的字符串,调用里面的getBytes可以得到String的byte数组。
其它的应该用不到什么了吧。
**********************************
1.发送字符串的话用byte[]就可以啊。用Socket类里面的getOutputStream可以获得一个发送数据的OutputStream类对象。这个类对象有一个函数write(byte[] b) 可以向网络写byte[]。一个字符串可以通过String类中的getBytes() 转化成byte[]。这样总该明白了吧
2.说一下我的思路:开一个端口A发送UDP包(广播给端口B),用于模拟发送,用一个线程(线程1)来跑。开端口B接受局域网内的包,用另外一个线程(线程2)来跑。在发送UDP包的时候,将变量mark置1,发送完置0。线程2如果接受到一个不是从本机发送的包,而且此时mark是1(说明本机和另外一个机器同时在发包),发生了冲突,表示线程1这次发送的包失败。
你那个文字我看不懂,路由器的路由算法其实就两类:1、距离矢量算法(如RIP协议),2、链路状态协议(如OSPF协议)。路由器不一定按最短路径转发(如OSPF协议),还要看他的路径开销等参数。如果你不考虑其他因素,仅考虑最短路径,可以用Dijistra算法写。