android studio 52 mp3下载客户端001
发布日期:2021-06-24 15:21:34
浏览次数:5
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月20日 02时58分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【实用】SAP修改记录表开发
2019-04-28
SAP空格无法带出历史记录的解决办法
2019-04-28
为销售范围维护允许的销售凭证
2019-04-28
恢复已经删除abap程序的方法
2019-04-28
【黑科技】在alv中设置字体样式
2019-04-28
ABAP开发中常用的两个F4搜索帮助函数的区别
2019-04-28
SAP选择屏幕中实现三级联动下拉框效果
2019-04-28
[三代] 获取BADI对象的两种方法
2019-04-28
关于SAP Router连接不稳定的改良
2019-04-28
获取Domain中Value Range值和描述文本的方法
2019-04-28
关于销售订单的状态
2019-04-28
FI功能增强业务说明书
2019-04-28
物料帐结算,库存差异为何在下月初冲回
2019-04-28
SAP中创建分部机构凭证号码并且按年度编号
2019-04-28
ALV OO的栏位属性
2019-04-28
如何取得用户参数文件中的parameters
2019-04-28
汇兑损益如何结转
2019-04-28
采购订单收货后不能修改价格的增强
2019-04-28
财务凭证过账增强 BAPI_ACC_DOCUMENT_POST
2019-04-28