Mac下简单socket连接代码

//

//  main.m

//  DMTCPClient

//

//  Created by 无痕 on 16/3/23.

//  Copyright © 2016 无痕. All rights reserved.

//


#import <Foundation/Foundation.h>


#import <sys/socket.h>

#import <netinet/in.h>

#import <arpa/inet.h>

#import <unistd.h>


void connectToServer();


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        // insert code here...

        NSLog(@"Hello, World!");

        connectToServer();

    }

    return 0;

}



#define MYPORT  9002

#define BUFFER_SIZE 1024


void connectToServer()

{

    ///定义sockfd

    int sock_cli = socket(AF_INET,SOCK_STREAM, 0);

    

    ///定义sockaddr_in

    struct sockaddr_in servaddr;

    memset(&servaddr, 0, sizeof(servaddr));

    servaddr.sin_family = AF_INET;

    servaddr.sin_port = htons(MYPORT);  ///服务器端口

    servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");  ///服务器ip

    

    ///连接服务器,成功返回0,错误返回-1

    if (connect(sock_cli, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)

    {

        perror("connect");

        exit(1);

    }

    //

    printf("连接服务器成功\n");

    char sendbuf[BUFFER_SIZE];

    char recvbuf[BUFFER_SIZE];

    printf("等待输入中\n");

    while (fgets(sendbuf, sizeof(sendbuf), stdin) != NULL)

    {

        printf("等待输入是否阻塞线程\n");

        send(sock_cli, sendbuf, strlen(sendbuf),0); ///发送

        printf("发送数据:%s\n", sendbuf);

        if(strcmp(sendbuf,"exit\n")==0)

        {

           printf("发送退出信息\n");

           break;

        }

        recv(sock_cli, recvbuf, sizeof(recvbuf),0); ///接收

        printf("接收数据:%s\n", sendbuf);

//        fputs(recvbuf, stdout);

        

        memset(sendbuf, 0, sizeof(sendbuf));

        memset(recvbuf, 0, sizeof(recvbuf));

    }

    

    close(sock_cli);

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android设备上建立与Mac电脑的蓝牙连接,您可以使用以下代码: 首先,您需要在Android应用程序中添加蓝牙权限。在AndroidManifest.xml文件中添加以下行: ``` <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ``` 然后,您可以使用以下代码连接Mac设备的蓝牙: ```java private BluetoothAdapter bluetoothAdapter; private BluetoothDevice macDevice; private BluetoothSocket socket; // 在 onCreate 方法中初始化蓝牙适配器和要连接Mac设备 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); macDevice = bluetoothAdapter.getRemoteDevice("MAC_DEVICE_ADDRESS"); } // 在连接按钮的onClick方法中调用以下方法 public void connectToMacDevice(View view) { try { socket = macDevice.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB")); socket.connect(); } catch (IOException e) { e.printStackTrace(); } } // 最后,在应用程序结束时关闭连接 @Override protected void onDestroy() { super.onDestroy(); if (socket != null) { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 请注意,在上面的代码中,您需要将“MAC_DEVICE_ADDRESS”替换为Mac设备的蓝牙地址。另外,UUID.fromString()中的UUID值是固定的,用于建立与蓝牙设备的通信通道。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值