android studio 52 mp3下载客户端001
发布日期:2021-06-24 15:21:34
浏览次数:4
分类:技术文章
本文共 4310 字,大约阅读时间需要 14 分钟。
第一步:mainActivity.javapackage com.example.mydownloadmusic01;import android.annotation.SuppressLint;import android.os.Handler;import android.os.Message;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class MainActivity extends AppCompatActivity { TextView tv; Button btn; EditText edt; String NeedFindWords; private final int HANDLER_MSG_TELL_RECV = 0x124; @SuppressLint("HandlerLeak") Handler handler = new Handler(){ public void handleMessage(Message msg){ //接受到服务器信息时执行// Toast.makeText(MainActivity.this,(msg.obj).toString(),Toast.LENGTH_LONG).show(); tv.setText((msg.obj).toString()); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = findViewById(R.id.button); edt=(EditText)findViewById(R.id.editText); tv= (TextView) findViewById(R.id.ReData); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 响应事件 NeedFindWords=edt.getText().toString(); startNetThread(); } }); } private void startNetThread() { new Thread() { @Override public void run() { try { Socket socket = new Socket("192.168.1.7", 666); InputStream is = socket.getInputStream(); OutputStream out = socket.getOutputStream(); out.write(NeedFindWords.getBytes()); //3.发送 out.flush(); byte[] bytes = new byte[1024]; int n = is.read(bytes); Message msg = handler.obtainMessage(HANDLER_MSG_TELL_RECV, new String(bytes, 0, n)); msg.sendToTarget(); is.close(); socket.close(); } catch (Exception e) { } } }.start(); }}第二步 activity-main.xml
import socketimport sysfrom time import ctimedef FindMusicName(MusicName): f = open('musicName3.txt','r',encoding='utf8') for lines in f.readlines(): if lines.find("马桃")!=-1: print(lines) print("find it .........................") return lines# 1.socket(socket_family, socket_type, protocol=0)# 其中,socket_family 是 AF_UNIX 或 AF_INET,ocket_type 是 SOCK_STREAM或 SOCK_DGRAM, protocol 通常省略,默认为 0。# 为了创建 TCP/IP 套接字,可以用下面的方式调用 socket.socket()。# tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 同样,为了创建 UDP/IP 套接字,需要执行以下语句。# udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)ServerSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地机器名host = socket.gethostname()# 设置端口port = 666# 2.s.bind绑定本地地址到socket对象ServerSocket.bind((host, port))# 3.s.listen监听地址端口,连接几个客户端ServerSocket.listen(2)while True: # 4.s.accept阻塞接受链接请求,被动接受 TCP 客户端连接,一直等待直到连接到达(阻塞) # accept()方法会返回一个含有两个元素的元组(fd,addr)。 # 第一个元素是新的socket对象,服务器通过它与客户端通信。 # 第二个元素也是元组,是客户端的地址及端口信息。 clientsocket, addr = ServerSocket.accept() print("连接地址:%s" % str(addr)) msg = "welcomt to my demo" all_line="" #send()和recv()的数据格式都是bytes。 # (str和bytes的相互转化,用encode()和decode(),或者用bytes()和str()) print("send msg:welcomt to my demo.") #clientsocket.send(msg.encode("utf-8")) data = clientsocket.recv(1024) print(data.decode("utf-8")) print("显示文件歌曲查询结果") f = open('musicName3.txt','r',encoding='utf8') for lines in f.readlines(): if lines.find(data.decode("utf-8"))!=-1: print(lines) print("find it .........................") all_line=all_line+lines; continue data2= all_line.encode("utf-8") print(all_line) #data1 = ('[%s] %s' % (ctime(),data.decode())).encode("utf-8") clientsocket.send(data2) #clientsocket.send(str(MusicN).decode("utf-8")) clientsocket.close()ServerSocket.close()
转载地址:https://blog.csdn.net/weixin_33595571/article/details/107883124 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年03月29日 17时30分16秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Vue实现导航栏吸顶效果
2019-04-28
Java:hibernate-validator验证数据
2019-04-28
CSS设置高度撑满页面
2019-04-28
js-cookie读写浏览器中的Cookie
2019-04-28
JS:crypto-js实现AES加密解密
2019-04-28
PHP:curl发送GET、POST请求
2019-04-28
PyCharm正则替换
2019-04-28
JS:visibilitychange事件监听页面是否显示
2019-04-28
JS:ES6(ES2015)新特性之常量、箭头函数、解构赋值
2019-04-28
Python:Jinja2模板语法整理
2019-04-28
Mac通过Brew安装Nginx的Echo模块
2019-04-28
Elasticsearch自定义分析器analyzer分词实践
2019-04-28
阿里云体验实验室-6:Linux指令入门-文件与权限
2019-04-28
Nginx转发到Flask应用scheme获取不到https
2019-04-28
Python:格式化时间精确到毫秒
2019-04-28
JS:正则RegExp对象匹配中文汉字
2019-04-28
JS:前端二进制
2019-04-28
JS:findIndex查找列表元素下标
2019-04-28