IOS tcp socket 每次和客户端连接都会建立一个新端口,求助怎么把端口固定

[复制链接]
查看11 | 回复2 | 2021-1-27 06:20:32 | 显示全部楼层 |阅读模式
#import
#include
#include

#definePORT9000

@interfaceViewController:UIViewController
{
intflag;//操作标志0为发送1为接收
}

@property(nonatomic,retain)NSInputStream*inputStream;
@property(nonatomic,retain)NSOutputStream*outputStream;

-(void)initNetworkCommunication
{
CFReadStreamRefreadStream;
CFWriteStreamRefwriteStream;
CFStreamCreatePairWithSocketToHost(NULL,
(CFStringRef)@”192.168.1.103″,PORT,&readStream,&writeStream);①
_inputStream=(__bridge_transferNSInputStream*)readStream;②
_outputStream=(__bridge_transferNSOutputStream*)writeStream;③
[_inputStreamsetDelegate:self];④
[_outputStreamsetDelegate:self];⑤
[_inputStreamscheduleInRunLoop:[NSRunLoopcurrentRunLoop]
forMode:NSDefaultRunLoopMode];⑥
[_outputStreamscheduleInRunLoop:[NSRunLoopcurrentRunLoop]
forMode:NSDefaultRunLoopMode];⑦
[_inputStreamopen];⑧
[_outputStreamopen];⑨
}
/*点击发送按钮*/
-(IBAction)sendData:(id)sender{
flag=0;
[selfinitNetworkCommunication];
}
/*点击接收按钮*/
-(IBAction)receiveData:(id)sender{
flag=1;
[selfinitNetworkCommunication];
}
-(void)initNetworkCommunication
{
CFReadStreamRefreadStream;
CFWriteStreamRefwriteStream;
CFStreamCreatePairWithSocketToHost(NULL,
(CFStringRef)@”192.168.1.103″,PORT,&readStream,&writeStream);①
_inputStream=(__bridge_transferNSInputStream*)readStream;②
_outputStream=(__bridge_transferNSOutputStream*)writeStream;③
[_inputStreamsetDelegate:self];④
[_outputStreamsetDelegate:self];⑤
[_inputStreamscheduleInRunLoop:[NSRunLoopcurrentRunLoop]
forMode:NSDefaultRunLoopMode];⑥
[_outputStreamscheduleInRunLoop:[NSRunLoopcurrentRunLoop]
forMode:NSDefaultRunLoopMode];⑦
[_inputStreamopen];⑧
[_outputStreamopen];⑨
}
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:20:32 | 显示全部楼层
端口的使用从来都是该怎么就怎么,
服务端口一定是固定的,不固定就没人知道如何连,
客户端口一定是不固定的,因为一个端口只能被一个连接使用,通常都是大批量地使用端口,没法固定.
回复

使用道具 举报

千问 | 2021-1-27 06:20:32 | 显示全部楼层
看下有没有bind之类的方法,按理来说tcp客户端也是可以bind端口的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行