简单的聊天室实现

[size=small]我们在创建聊天室的时候,主要都是运用java.net包下面的类;
创建聊天室需要了解TCP/IP协议方面的内容,我推荐几本书,大家可以参考,TCP/IP详解卷一、卷二、卷三版三本;
现在我们用的只是最基础的,大家应该都知道我们IP地址吧,其中端口号了解吗?我给大家打个比方:我现在要邮寄一个东西到你家,我除了要知道你家是哪个城市哪条街哪栋房子外,我还必须要知道你是那栋房子的哪间房,只有这样我才能把东西准确的送到你门口;我们的IP地址就是相比于我们所处的城市街道和哪一栋,这样根据IP地址我们找到了相对应的电脑,但是每台电脑都有很多程序,信息怎么知道要找到哪个程序呢,这就要靠端口,我们电脑里面的每个程序都有一个端口号,就相当于一栋房子有很多房间,其中端口号就相当于房间号;根据端口号我们的信息才能准确的发送到相应的程序;
现在我们要创建一个聊天室就必须先创建一个服务器,这个服务器以前是不存在我们电脑上就不存在端口号,所以我们就必须先赋予服务器一个端口号,我们要新建的端口号必须是我们电脑上没有用过的端口号,不然就会报错;我们电脑现在启动了哪些端口我们可以在cmd中输入netstat -an这个命令符来查看;
下面就是我们创建一个服务器的代码:[/size]

/**
* 实现信息传输的方法
*/
public void setUpServer(int port){
try {
//创建绑定在指定端口上的服务器对象,即服务器套接字(拥有一个手机,但没开机,不能通信)
java.net.ServerSocket server = new java.net.ServerSocket(port);
System.out.println("服务器创建成功!端口为"+port+"!");
//获取客户端套接字(手机开机,等待别人打电话过来,现在处于待机状态)
while(true){
java.net.Socket socket = server.accept();
System.out.println("客户机与服务器连接成功!");
//创建输入、输出流对象;套接字获取的输入输出流都是输入输出的抽象类类型
java.io.InputStream is = socket.getInputStream();
java.io.OutputStream os = socket.getOutputStream();
//创建要发出的字符串
String s="你好!!我是某某某!!";
byte[] string = s.getBytes();//字符串转化为字节放入数组
os.write(string);
//强制输出,关闭流
os.flush();
socket.close();//半闭与客户机连接
}
} catch (Exception e) {
e.printStackTrace();
}
}

[size=small]这样我们就建立了最简单的聊天室,我们启动服务器后只需要在cmd中输入命令telnet localhost port(port是我们传入的端口号),这样我们就能收到服务器发来的一句话“你好!!我是某某某!!”;
但是我们这样连接后看到,只要我们一连接上收到数据就断开了,我们还是无法进行聊天,我需要对以上代码进行扩展:[/size]

int in=0;
while(in!=13){
in=is.read();
System.out.println("读到的一个是:"+in);
}
System.out.println("客户按了回车键,并退出"+in);
System.out.println("服务器处在在等待连接中...");
os.close();

[size=small]我们可以把上面这段代码添加到前面的那段代码的socket.close()的前面,这样我们在客户机上输入数据,服务器上都能收到,只是显示的是相应的ASCALL码,我们如果要显示正常字符,我们只要把他转化为字符即可;[/size] :D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简易聊天室本次实验的目的是通过以下题目掌握JSP内置对象,包括:request,response,session,application等。 (1)制作简易聊天室,能够实现简单的页面聊天功能。 (2)制作网页计数器,要求相同的窗口内刷新页面访问次数并不增加,并且用图片来显数字。1、 熟悉request、response、session、application、out等内置对象; 2、 选择制作网页计数器程序需准备数字图片;1、进入jsp子目录,编写简易聊天室的JSP程序,聊天室的需要实现的基本功能:输入昵称、聊天。 2.根据功能编写页面代码。二、网页计算器 利用内置对象application <html> <head> <base href="<%=basePath%>"> <title>My JSP 'Counter.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 您是第位访问者! </body> </html> 简易聊天室本次实验的目的是通过以下题目掌握JSP内置对象,包括:request,response,session,application等。 (1)制作简易聊天室,能够实现简单的页面聊天功能。 (2)制作网页计数器,要求相同的窗口内刷新页面访问次数并不增加,并且用图片来显数字。1、 熟悉request、response、session、application、out等内置对象; 2、 选择制作网页计数器程序需准备数字图片;1、进入jsp子目录,编写简易聊天室的JSP程序,聊

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值