在Mac OS X中,使用NSHost和NSStream与服务器进行连接的代码如下:
NSInputStream iStream;
NSOutputStream oStream;
uint portNo = 500;
NSURL website = [NSURLURLWithString:urlStr];
NSHost host = [NSHost hostWithName:[websitehost]]; [NSStream getStreamsToHost:host
port:portNo
inputStream:&iStream
outputStream:&oStream];
NSStream的getStreamsToHost:port:inputStream:outputStream:方法用于连接服务器并创建一对输入输出流用于向服务器读写数据。问题是iOS中并没有这个方法。因此上述代码无法用于iPhoneapp中。
要解决这个问题,需要为NSStream增加新的类别以增加getStreamToHost:Port:inputstream:outputStream:方法。在Xcode中新建文件NSStreamAdditionsm。然后在NSStreamAdditionsh中编写代码如下:
@interface NSStream (MyAdditions)
+ (void)getStreamsToHostNamed:(NSString)hostName
port:(NSInteger)port
inputStream:(NSInputStream )inputStreamPtr
outputStream:(NSOutputStream )outputStreamPtr;
@end
在NSStreamAdditionsm文件中加入下列代码。
#import "NSStreamAdditionsh"
@implementation NSStream (MyAdditions)
+ (void)getStreamsToHostNamed:(NSString)hostName
port:(NSInteger)port
inputStream:(NSInputStream )inputStreamPtr
outputStream:(NSOutputStream )outputStreamPtr
{
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;方法很多:
1、可以利用socket与服务端直接基于tcp/ip或udp协议进行通信
2、可以用>一个客服程序可以与多个服务器进行通信,因为客户端可以与多个服务端对接,使用特定的协议进行通讯,从而实现数据的传输和共享。同时,当某一服务出现故障时,还可以利用另一服务进行补偿和替代,确保系统运行的稳定性和可靠性。我说一种最简单的方法:1、路由上映射80以及远程端口给Web服务器的80和远程端口。2、路由上映射其他端口(如4489)给数据库服务器的远程端口。这样就解决了2台服务器都需要远程登陆的问题了。3、这2个机器,默认应该是走的内网路由方式连接,你就用内网IP把他们连接起来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)