仿QQ平台实践第一步-实现聊天

2016.10.13

 

乐逗的校园大使的任务差不多都结束了,终于可以全身心的投入找工作了,向胡哥说的那样,每天面一场,然后总结,一定要争取机会去复试。加油!

现在继续在这边上课了。现在总结一下今天的上课内容,以后也尽量像这样及时的写技术博客。

什么叫服务端和客户端?

假如打开一个网页,你要查询资料。你是客户,因为你在访问,你访问的是客服端。去吃饭,你到饭店,你点餐你是顾客(客户端)Client,服务员也就是(服务端)Server

以一段代码为例:

public class TestServer {
	 public void startStar(int port){
     	try{
     		//1.创建一个服务器对象
     		System.out.println("1,开始创建服务器");
		    java.net.ServerSocket ss = new java.net.ServerSocket(port);
		    //2.等待连接进入
		    System.out.println("2,服务器创建成功在"+port);
		    while(true){
		    java.net.Socket client = ss.accept();//阻塞住,待机状态
		    System.out.println("3,在客服机进入..."+port);
		    //取得输入输出对象
		    java.io.InputStream ins = client.getInputStream();
		    java.io.OutputStream ous = client.getOutputStream();
		    //4.读写错了...
		    String msg ="hello";
		    byte[] data =msg.getBytes();
		    ous.write(data);
		    int t = ins.read();//阻塞
		    System.out.println("读到发来的一个字节: "+t);
		        }
     	}catch(Exception e){
     		e.printStackTrace();
     	}
     }

	public static void main(String[] args) {
		TestServer ss = new TestServer();
		ss.startStar(7676);
      }
}

 运行结果如下:

 1,开始创建服务器

 2,服务器创建成功在7676

 在windows环境下,命令行程序为cmd,然后输入ipconfig,出现如下IPV4就是本机的服务器地址,好像每次运行的都不一样。

 由于开始时电脑的Telnet客户端默认是关闭的,所以要自己打开。还有就是我这个自己添加了ipconfig的环境变量。

 

大概持续了好几分钟。

命令行模式 输入 telnet localhost  端口号

如果就是本地传输,则只要输入:

telnet localhost port(本次是7676)

结果如下:

 如果是与别人的电脑进行通信,则需输入:telnet xxx.xxx.x(对方的ip地址) 端口号 



 回去可以查看寝室的路由器,进行通信哦。

 over,洗澡睡觉。。

 这个是PDF上的,和上面的代码基本上一样。

 

public class TestServer {
	public void setUpServer(int port){
		//建立绑定在指定窗口上的服务器对象
		try {
			ServerSocket server = new ServerSocket(port);
			System.out.println("服务器创建成功! "+port);
			//让服务器进入等待状态:阻塞状态
			Socket client = server.accept();
			//从连接对象上得到输入输出流对象
			OutputStream out = client.getOutputStream();
			InputStream ins = client.getInputStream();
			String s = "你好,欢迎来javaKe.com\r\n";
			byte [] data = s.getBytes();//取得组成这个字符串的字节
			out.write(data);//用输出对象发送数据
			out.flush();//强制输出
			client.close();//关闭与客户机的连接
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
        public static void main(String[] args){
        	TestServer ts = new TestServer();
        	ts.setUpServer(8887);
       }
}

 

一、源码描述 GG2014是QQ的高仿版,包括客户端和服务端,可在广域网部署使用。我的目标并不 是做一个QQ仿版的玩具,而是希望做成一个能够真正使用的产品(这个过程还有 很长的路要走),并持续维护下去。小编亲自测试完美运行,强烈推荐一下,感兴趣 的朋友们千万不要错过啊。 二、功能介绍 GG2014 已经实现了如下功能: (01)注册、登录、添加好友、好友列表。 (02)自拍头像。 (03)文字聊天、字体设置、GIF动态表情、窗口震动、截图、手写板、登录状态 (在线、离开、忙碌、勿打扰、隐身)、输入提醒 (04)群功能:创建群、加入群、退出群、群聊天 (05)文件传送、文件夹传送(支持断点续传) (06)语音视频聊天 (07)远程磁盘 (08)远程协助 (09)共享桌面(可以指定要共享的桌面区域) (10)可靠的P2P (11)网盘 (12)离线消息 (13)离线文件 (14)语音消息、语音留言 (15)最近联系人列表 (16)系统设置:开机自动启动、麦克风设备索引、摄像头设备索引,叉掉主窗口时 关闭程序还是隐藏窗口。 (17)聊天记录:支持本地保存和服务器端保存两种方式。 (18)好友分组:新增/删除分组,修改分组名称,改变好友的所属分组。 (19)托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点 击头像,将弹出与好友的聊天框。 (20)输入提醒:像QQ一样,当对方正在输入消息时,我这边的聊天框可以看到对方 “正在输入”的提示。 (21)自动记录:GG2014会自动记录上次打开的主界面的位置、大小;最后一次打开 的聊天窗口的大小;最后一次 设定的字体的颜色、大小等。 (22)打开聊天窗口时,自动显示上次交谈的最后一句话。 三、注意事项 1、开发环境为Visual Studio 2010,无数据库,使用.net 2.0开发。 2、该源码仅供学习交流使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值