`
zjjzmw1
  • 浏览: 1365097 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

socket 聊天的简单实现和思路

    博客分类:
  • iOS
阅读更多

 =====================希望对大家有所帮助,仅此而已================

/*   

 AsyncSocket   聊天用的。。。-------》是可以通过ip给某个设备发送消息,关键是如何找到ip,问题就解决了。------》ip其实是通过登陆来获取的。只要是登陆用户服务器就可以把id号码和ip一一绑定了。

 聊天的原理:例如A发送给B消息。

 1.A先发送给服务器消息包含(Bid号码要发送的内容)。

 2.如果B不在线,服务器利用推送通知推送给B一个消息。当B登陆后会传给服务器自己的idip(外网内网都有)

 服务器就可以把之前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

1
0
分享到:
评论

相关推荐

    基于socket聊天程序编写实验报告

    2. 熟悉socket聊天系统的结构和工作原理; 3. 掌握TCP传递消息的机制; 4. 应用delphi对该聊天系统进行程序的编写。 二、 实验描述: 通过delphi编程实现局域网内的一个聊天系统,支持客户与服务器、客户与客户之间...

    基于NodeJS的聊天室程序(socket.io实现)

    本项目基于Node.js和socket.io,构建了一个能够实现多人在线聊天的聊天室程序,让我们深入了解这个系统的组成部分和工作原理。 **Node.js基础** Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许...

    基于socket的聊天程序设计与实现

    ### 基于Socket的聊天程序设计与实现 #### 概述 在计算机网络通信领域,Socket编程是一种广泛使用的...尽管如此,整体的设计思路和实现逻辑基本相同。希望本文能为你基于Socket的聊天程序设计提供一定的参考和帮助。

    简单qq聊天(Java socket实现)

    在本项目中,"简单qq聊天(Java socket实现)"是一个使用Java编程语言构建的简易聊天应用程序,旨在模拟QQ的基本功能。它利用了Socket编程来实现实时的客户端-服务器通信,允许用户进行群聊、私聊以及状态更新。下面...

    C#利用socket实现的一对一聊天工具源代码

    为了进一步了解和学习这个工具,你需要解压并查看源代码,理解其设计思路和实现方法。 6. **学习资源与实践** - 学习C# Socket编程,可以参考《C#网络编程》等书籍,或者网上搜索相关的教程和示例代码。 - ...

    socket聊天室程序

    在这个"socket聊天室程序"项目中,我们主要关注的是如何使用Socket技术来创建一个简单的聊天环境,允许多个用户通过服务器进行实时交流。这里,我们将深入探讨Socket编程的基本原理、聊天室程序的设计思路以及相关...

    c++基于socket的网络聊天室

    本文详细介绍了如何使用C++和socket编程技术实现一个简单的网络聊天室。通过以上介绍,我们可以了解到实现此类系统所需的关键技术和设计思路。尽管示例代码较为简单,但它为构建更复杂的功能奠定了坚实的基础。未来...

    基于Socket的简单的Android聊天室,易学,易懂

    本项目"基于Socket的简单的Android聊天室"提供了一个学习和理解Socket编程在Android平台上的应用的实例。这个聊天室简单易学,适合初学者入门。 Socket在计算机网络中起到了桥梁的作用,它允许两台机器通过互联网...

    java实现简易聊天室

    本文将对 Java 实现简易聊天室的设计和实现进行详细的分析和讲解。该聊天室程序主要由五个 Java 源文件组成,即 Server.java、Objecting.java、LogIn.java、ClientUser.java 和 Client.java。这些文件分别负责服务器...

    基于socket的聊天程序(报告)

    通过以上设计,我们实现了基于Socket的简单聊天程序,该程序能够满足基本的即时通信需求。在整个过程中,不仅加深了对TCP/IP协议的理解,还锻炼了利用C#语言进行网络编程的能力。此外,通过实践,我们也学习到了如何...

    简单的多人聊天(C#.Socket).

    通过了解Socket的基本概念和实现细节,我们不仅能够搭建出基本的聊天系统,还可以在此基础上进行功能扩展和性能优化,从而构建更加复杂和高效的网络应用。希望这些知识点能够帮助读者更好地掌握C#中的Socket编程技巧...

    java写的聊天简单版本,还有一些功能没有实现,只是一个思路

    标题中的"java写的聊天简单版本"指的是一款基于Java编程语言开发的初级阶段的聊天应用程序。Java作为一种广泛使用的面向对象的编程语言,因其跨平台性、丰富的类库以及强大的社区支持,常被用于开发各种类型的应用...

    1.5Java聊天室的设计与实现socket.zip

    Java聊天室的设计与实现主要基于Socket编程,是Java开发领域中的一个典型实例,适用于学习和研究。这个毕业设计项目提供了完整的源代码,帮助学生或开发者深入理解网络通信和多线程编程。以下将详细讲解该项目涉及的...

    Linux下聊天室实现(基于C)

    10. **安全性**:虽然这是一个简单的聊天室,但考虑到网络安全,数据传输应尽可能加密,如使用SSL/TLS协议。 这个项目不仅涵盖了基础的网络编程概念,还涉及到了并发处理、权限控制等进阶主题,对学习和理解网络...

    基于局域网聊天程序设计其中网络通信部分采用流行的TCP/IP协议。程序采用典型的C/S(服务器/客户端)构架。用socket编程设计网络通讯

    本论文讨论了Windows环境下局域网聊天程序的设计思路和设计方法。其中网络通信部分采用流行的TCP/IP协议。程序采用典型的C/S(服务器/客户端)构架。用socket编程设计网络通讯。界面设计部分采用Windows MFC框架。...

    socket1v1聊天程序源码

    【标题】"socket1v1聊天程序源码"是一个基于C语言实现的简单TCP聊天程序,它使用了socket编程接口来实现客户端与服务器之间的通信。Socket编程是网络编程中的基本概念,它允许不同计算机上的应用程序通过网络进行...

    基于socket的聊天工具(含源码).rar

    这个项目可能包含了服务器端和客户端的源代码,以便开发者理解和学习如何使用Socket建立一个简单的聊天平台。 【描述】: "基于socket的聊天工具(含源码)" 描述表明,这个压缩包提供了一个完整的聊天应用程序的源...

    python下基于socket通信聊天室.zip

    本项目“python下基于socket通信聊天室”提供了一个实际应用示例,旨在教授如何构建一个简单的聊天室系统。这里我们将深入探讨相关知识点。 首先,让我们了解什么是Socket。Socket是操作系统提供的一种接口,它允许...

    计算机网络实验设计---基于TCP的网络聊天室的设计(含有源代码和详细报告)

    在这个实验中,我们将使用C++编程语言,通过Visual C++(VC++)开发环境来实现一个简单的网络聊天室。 1. **TCP协议基础**: TCP是传输层协议,它提供了端到端的数据流服务,保证了数据的可靠传输。TCP通过序列号...

    公司点餐系统(socket通讯)

    实现这一功能,可以扩展socket通信,增加消息发送和接收的模块,支持多用户聊天。 总结,这个“公司点餐系统(socket通讯)”项目是一个实用的网络编程实践案例,它涵盖了网络通信基础、数据库操作、多线程编程等多个...

Global site tag (gtag.js) - Google Analytics