Socket编程

本文介绍了在Android Studio中进行Socket编程的步骤,包括创建服务端和客户端,使用TCP协议进行可靠的数据交换。详细讲解了如何在MainActivity、activity_main.xml及AndroidManifest.xml中设置,并强调了客户端发送数据时服务器需已监听以及避免主线程进行网络操作的重要性。
摘要由CSDN通过智能技术生成


前言

记录每天学习的内容方便以后自己复习回顾(第一天)。


以下是本篇文章正文内容。

一、Socket编程?

在TCP/IP通信协议中,套接字(Socket)就是IP和端口号的组合。

二、使用步骤

1.使用IDE创建服务端用于接受客户端请求和向客户端发送请求(使用的TCP协议,是一种面向连接可靠的、全双工、基于字节流的网络通信协议所以可以同时接受请求和发送请求)

代码如下(示例):

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;

public class TcpServer {
   
    private static ServerSocket serverSocket;
    private static int port = 2349;
    private static byte[] bytes = new byte[1024];
    private static int len = -1;
    private static StringBuffer stringBuffer;
    private static Socket socket;

    public static void main(String[] args) throws IOException {
   
        serverSocket = new ServerSocket(port);
        socket = serverSocket.accept();
        while (true) {
   
            stringBuffer = new StringBuffer();
            InputStream inputStream = socket.getInputStream();
            len = 0;
            len = inputStream.read(bytes);
            String string=null;
            if (len > 0) {
   
                string = (new String(bytes, 0, len, Charset.forName("UTF-8")));
            }
            System.out.println(string);
            stringBuffer.append(string);
            System.out.println(stringBuffer.toString());
            OutputStream outputStream = socket.getOutputStream();
            byte[] bytes1 = string.getBytes(Charset.forName("UTF-8"));
            outputStream.write(bytes1);
            outputStream.flush();
        }
    }
}

图片如下(示例):
在这里插入图片描述

2.使用AndroidStudio创建客户端(MainActivity文件)

代码如下(示例):

package com.hngy.zp.day06_01_socket_client;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周佩hihi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值