博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socket TCP简单通讯
阅读量:4977 次
发布时间:2019-06-12

本文共 3898 字,大约阅读时间需要 12 分钟。

socket 服务器

////  main.m//  socket_server////  Created by lujunjie on 2016/11/23.//  Copyright © 2016年 lujunjie. All rights reserved.//#import 
#import
#import
#import
int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); // 第一步:打开套节字描述 int sockfd = -1; sockfd = socket(AF_INET, SOCK_STREAM, 0);// 协议族、套节字可靠性传输、0 if(sockfd == -1) { NSLog(@"error:打开套节字描述符失败socket()"); return 0; } NSLog(@"打开套节字描述sockfd:%d",sockfd); // 第二步:bind 绑定sockfd和当前电脑的ip地址&端口号 struct sockaddr_in serveraddr; serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(30000); // 5000~655355 serveraddr.sin_addr.s_addr = inet_addr("192.168.1.103"); int ret =bind(sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)); if (ret < 0) { NSLog(@"error:bind"); return 0; } NSLog(@"bind-ret:%d",ret); // 第三步:listen监听端口 int listenRet = listen(sockfd, 10);// ..,监听多少个; if (listenRet < 0) { NSLog(@"error:listen"); return 0; } NSLog(@"listen-ret:%d",listenRet); // 第四步:accept阻塞等待客户端接入 struct sockaddr_in clientaddr; socklen_t len = 0; int clientfd = accept(sockfd, (struct sockaddr *)&clientaddr, &len); if (clientfd < 0) { NSLog(@"error:accept"); return 0; } NSLog(@"accept-clientfd:%d",clientfd); NSLog(@"成功建立连接"); // 建立连接之后通信 char recvbuf[100]; memset(recvbuf, 0, sizeof(recvbuf));// // long recvRet = recv(clientfd, recvbuf, sizeof(recvbuf), 0);// // NSLog(@"成功接收了%ld个字节\n",recvRet);// NSLog(@"client发送过来的内容是:%s",recvbuf);// printf("client发送过来的内容是:%s",recvbuf); while (1) { long recvRet = recv(clientfd, recvbuf, sizeof(recvbuf), 0); NSLog(@"成功接收了%ld个字节\n",recvRet); NSLog(@"NSLogclient发送过来的内容是:%s",recvbuf); memset(recvbuf, 0, sizeof(recvbuf)); } } return 0;}

socket客户端

////  main.m//  socket_client_Command////  Created by lujunjie on 2016/11/23.//  Copyright © 2016年 lujunjie. All rights reserved.//#import 
#import
#import
#import
int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"socket_client_Command"); // 第一步:打开套节字描述 int sockfd = -1; sockfd = socket(AF_INET, SOCK_STREAM, 0);// 协议族、套节字可靠性、0 if(sockfd == -1) { NSLog(@"error:打开套节字描述符失败socket()"); return 0; } NSLog(@"打开套节字描述sockfd:%d",sockfd); // 第二步:connect 链接服务器 struct sockaddr_in serveraddr; serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(30000); // 5000~655355 serveraddr.sin_addr.s_addr = inet_addr("192.168.1.103"); int ret = connect(sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)); if (ret < 0) { NSLog(@"error:connect"); return 0; } NSLog(@"connect-ret:%d",ret); NSLog(@"成功建立连接"); char sendbuf[100];// // strcpy(sendbuf, "cliend:hello world");// long retstr=send(sockfd, sendbuf,strlen(sendbuf),0);// // NSLog(@"发送了%ld个字符\n",retstr); while (1) { NSLog(@"请输入要发送的内容\n"); scanf("%s",sendbuf); long retstr=send(sockfd, sendbuf,strlen(sendbuf),0); NSLog(@"发送了%ld个字符\n",retstr); } } return 0;}

转载于:https://www.cnblogs.com/-ljj/p/6095876.html

你可能感兴趣的文章
Reconstruction(三维重建)文件被修改
查看>>
MapGIS计算瓦片数据集
查看>>
你最美好的年华
查看>>
中兴MF667S WCDMA猫Linux拨号笔记
查看>>
jQuery
查看>>
探究绑定事件的this指向以及event传参的小问题
查看>>
BOM window对象 localtion navigator
查看>>
Linux的.pid文件
查看>>
unity性能优化-CPU
查看>>
jquery获得图片的真实大小
查看>>
学习总结8
查看>>
qt 拖放
查看>>
使用 ssh -R 建立反向/远程TCP端口转发代理
查看>>
使用ssh正向连接、反向连接、做socks代理的方法
查看>>
.NET 编译执行or解释执行?
查看>>
jmeter基础概念
查看>>
IOS AppStore介绍图的尺寸大小(还有一些自己被拒的分享...)
查看>>
Android 实现在线程中联网
查看>>
Akka(30): Http:High-Level-Api,Routing DSL
查看>>
第八章:FTP publisher plugin插件下载(支持绝对路径)
查看>>