=====================希望对大家有所帮助,仅此而已================
/*
AsyncSocket 聊天用的。。。-------》是可以通过ip给某个设备发送消息,关键是如何找到ip,问题就解决了。------》ip其实是通过登陆来获取的。只要是登陆用户服务器就可以把id号码和ip一一绑定了。
聊天的原理:例如A发送给B消息。
1.A先发送给服务器消息包含(B的id号码和要发送的内容)。
2.如果B不在线,服务器利用推送通知推送给B一个消息。当B登陆后会传给服务器自己的id和ip(外网内网都有)
服务器就可以把之前A发来的消息再发给B了。并注明是A发的。
3.B就收到了A的消息。
其实整个过程是 socket和推送共同完成的。。。主要工作在后台。,,,手机端功能并不复杂。
*/
#define kScreenHeight [[UIScreen mainScreen] bounds].size.height
#define kScreenWidth [[UIScreen mainScreen] bounds].size.width
#import "FirstViewController.h"
@interfaceFirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad {
[superviewDidLoad];
self.title = @"聊天页面";
self.navigationController.navigationBarHidden = YES;
self.view.backgroundColor = [UIColorlightGrayColor];
self.myTextField = [[UITextFieldalloc]initWithFrame:CGRectMake(0, 50, kScreenWidth - 60, 40)];
self.myTextField.backgroundColor = [UIColorwhiteColor];
[self.viewaddSubview:self.myTextField];
self.myTextView = [[UITextViewalloc]initWithFrame:CGRectMake(self.myTextField.frame.origin.x, self.myTextField.frame.origin.y + 60,kScreenWidth, kScreenHeight - 100)];
[self.viewaddSubview:self.myTextView];
self.myButton = [UIButtonbuttonWithType:UIButtonTypeCustom];
self.myButton.frame = CGRectMake(self.myTextField.frame.size.width, 50, 50, 40);
[self.myButtonsetTitle:@"发送"forState:UIControlStateNormal];
[self.myButtonaddTarget:selfaction:@selector(goAction) forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:self.myButton];
///1.创建发送套接字
sendUdpSocket = [[AsyncUdpSocketalloc]initWithDelegate:self];
reservedUdpSocket = [[AsyncUdpSocketalloc]initWithDelegate:self];
[reservedUdpSocketbindToPort:0x1234error:nil];
[reservedUdpSocketreceiveWithTimeout:-1tag:200];//200表示
///2.绑定端口(可选的)
///发送消息。通过按钮的事件。
}
-(void)goAction{
NSString *ip = @"192.168.7.101";
NSString *context = self.myTextField.text;
UInt16 port = 0x1234; //// > 1024 < 2`16-1
NSData *sendData = [context dataUsingEncoding:NSUTF8StringEncoding];
[sendUdpSocketsendData:sendData toHost:ip port:port withTimeout:-1tag:100];
}
-(void)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag{
if (tag == 100) {
///证明tag==100的标记发送完成了
NSLog(@"证明tag==100的标记发送完成了");
}
}
-(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{
NSLog(@"tag====%ld",tag);
[reservedUdpSocketreceiveWithTimeout:-1tag:200];//200表示
NSString *tempS = [[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
NSString *resultS = [NSStringstringWithFormat:@"\n%@%@%@\n",@"接收到: ",tempS,self.myTextView.text];
self.myTextView.text = resultS;
returnYES;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.myTextFieldresignFirstResponder];
[self.myTextViewresignFirstResponder];
}
-(void)viewWillAppear:(BOOL)animated{
[superviewWillAppear:animated];
}
@end
相关推荐
2. 熟悉socket聊天系统的结构和工作原理; 3. 掌握TCP传递消息的机制; 4. 应用delphi对该聊天系统进行程序的编写。 二、 实验描述: 通过delphi编程实现局域网内的一个聊天系统,支持客户与服务器、客户与客户之间...
本项目基于Node.js和socket.io,构建了一个能够实现多人在线聊天的聊天室程序,让我们深入了解这个系统的组成部分和工作原理。 **Node.js基础** Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许...
### 基于Socket的聊天程序设计与实现 #### 概述 在计算机网络通信领域,Socket编程是一种广泛使用的...尽管如此,整体的设计思路和实现逻辑基本相同。希望本文能为你基于Socket的聊天程序设计提供一定的参考和帮助。
在本项目中,"简单qq聊天(Java socket实现)"是一个使用Java编程语言构建的简易聊天应用程序,旨在模拟QQ的基本功能。它利用了Socket编程来实现实时的客户端-服务器通信,允许用户进行群聊、私聊以及状态更新。下面...
为了进一步了解和学习这个工具,你需要解压并查看源代码,理解其设计思路和实现方法。 6. **学习资源与实践** - 学习C# Socket编程,可以参考《C#网络编程》等书籍,或者网上搜索相关的教程和示例代码。 - ...
在这个"socket聊天室程序"项目中,我们主要关注的是如何使用Socket技术来创建一个简单的聊天环境,允许多个用户通过服务器进行实时交流。这里,我们将深入探讨Socket编程的基本原理、聊天室程序的设计思路以及相关...
本文详细介绍了如何使用C++和socket编程技术实现一个简单的网络聊天室。通过以上介绍,我们可以了解到实现此类系统所需的关键技术和设计思路。尽管示例代码较为简单,但它为构建更复杂的功能奠定了坚实的基础。未来...
本项目"基于Socket的简单的Android聊天室"提供了一个学习和理解Socket编程在Android平台上的应用的实例。这个聊天室简单易学,适合初学者入门。 Socket在计算机网络中起到了桥梁的作用,它允许两台机器通过互联网...
本文将对 Java 实现简易聊天室的设计和实现进行详细的分析和讲解。该聊天室程序主要由五个 Java 源文件组成,即 Server.java、Objecting.java、LogIn.java、ClientUser.java 和 Client.java。这些文件分别负责服务器...
通过以上设计,我们实现了基于Socket的简单聊天程序,该程序能够满足基本的即时通信需求。在整个过程中,不仅加深了对TCP/IP协议的理解,还锻炼了利用C#语言进行网络编程的能力。此外,通过实践,我们也学习到了如何...
通过了解Socket的基本概念和实现细节,我们不仅能够搭建出基本的聊天系统,还可以在此基础上进行功能扩展和性能优化,从而构建更加复杂和高效的网络应用。希望这些知识点能够帮助读者更好地掌握C#中的Socket编程技巧...
标题中的"java写的聊天简单版本"指的是一款基于Java编程语言开发的初级阶段的聊天应用程序。Java作为一种广泛使用的面向对象的编程语言,因其跨平台性、丰富的类库以及强大的社区支持,常被用于开发各种类型的应用...
Java聊天室的设计与实现主要基于Socket编程,是Java开发领域中的一个典型实例,适用于学习和研究。这个毕业设计项目提供了完整的源代码,帮助学生或开发者深入理解网络通信和多线程编程。以下将详细讲解该项目涉及的...
10. **安全性**:虽然这是一个简单的聊天室,但考虑到网络安全,数据传输应尽可能加密,如使用SSL/TLS协议。 这个项目不仅涵盖了基础的网络编程概念,还涉及到了并发处理、权限控制等进阶主题,对学习和理解网络...
本论文讨论了Windows环境下局域网聊天程序的设计思路和设计方法。其中网络通信部分采用流行的TCP/IP协议。程序采用典型的C/S(服务器/客户端)构架。用socket编程设计网络通讯。界面设计部分采用Windows MFC框架。...
【标题】"socket1v1聊天程序源码"是一个基于C语言实现的简单TCP聊天程序,它使用了socket编程接口来实现客户端与服务器之间的通信。Socket编程是网络编程中的基本概念,它允许不同计算机上的应用程序通过网络进行...
这个项目可能包含了服务器端和客户端的源代码,以便开发者理解和学习如何使用Socket建立一个简单的聊天平台。 【描述】: "基于socket的聊天工具(含源码)" 描述表明,这个压缩包提供了一个完整的聊天应用程序的源...
本项目“python下基于socket通信聊天室”提供了一个实际应用示例,旨在教授如何构建一个简单的聊天室系统。这里我们将深入探讨相关知识点。 首先,让我们了解什么是Socket。Socket是操作系统提供的一种接口,它允许...
在这个实验中,我们将使用C++编程语言,通过Visual C++(VC++)开发环境来实现一个简单的网络聊天室。 1. **TCP协议基础**: TCP是传输层协议,它提供了端到端的数据流服务,保证了数据的可靠传输。TCP通过序列号...
实现这一功能,可以扩展socket通信,增加消息发送和接收的模块,支持多用户聊天。 总结,这个“公司点餐系统(socket通讯)”项目是一个实用的网络编程实践案例,它涵盖了网络通信基础、数据库操作、多线程编程等多个...