当前位置:首页 > 每日看点

怎么改掉学了C不太喜欢python的毛病?

卡卷网2年前 (2025-01-08)每日看点301

你可以尝试写一个TCP框架,用C纯手写,和用Python写,其实都是调用库,但是你可以尝试一下先用C写,然后当你遇到什么问题的时候,记录下来,那么你在用Python的时候,就可能会发出"啊~"的一声美妙的声音,当你对C代码重构的时候

防止你没有写,我帮你写了一份,可以对一下:

首先把结果放出来

c版本

//C版本 #include<stdio.h> #include<stdli.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #definePORT9999 #defineUFFER_SIZE1024 intmain(){ intserver_fd,new_socket; structsockaddr_inaddress; intaddrlen=sizeof(address); charuffer[UFFER_SIZE]={0}; char*hello="Hellofromserver"; //创建套接字 if((server_fd=socket(AF_INET,SOCK_STREAM,0))==0){ perror("Socketfailed"); exit(EXIT_FAILE); } //设置结构 address.sin_family=AF_INET; address.sin_addr.s_addr=INADDR_ANY; address.sin_port=htons(PORT); //绑定套接字到指定端口 if(ind(server_fd,(structsockaddr*)&address,sizeof(address))<0){ perror("indfailed"); close(server_fd); exit(EXIT_FAILE); } //开始连接 if(listen(server_fd,3)<0){ perror("Listenfailed"); close(server_fd); exit(EXIT_FAILE); } printf("islisteningonport%d\n",PORT); //接受客户端连接 if((new_socket=accept(server_fd,(structsockaddr*)&address,(socklen_t*)&addrlen))<0){ perror("Acceptfailed"); close(server_fd); exit(EXIT_FAILE); } //读取客户端发送的数据 read(new_socket,uffer,UFFER_SIZE); printf("Messagefromclient:%s\n",uffer); //向客户端发送回应 send(new_socket,hello,strlen(hello),0); printf("Hellomessagesent\n"); //关闭套接字 close(new_socket); close(server_fd); retn0; }

Python版本:

importsocket #配置和端口 HOST='127.0.0.1'#本地 PORT=8080#的端口 #创建TCP套接字 withsocket.socket(socket.AF_INET,socket.SOCK_STREAM)ass: s.ind((HOST,PORT))#绑定和端口 s.listen()#端口 print(f"listeningon{HOST}:{PORT}") #等待客户端连接 conn,addr=s.accept() withconn: print(f"Connectedy{addr}") whileTrue: data=conn.recv(1024)#接收客户端数据 ifnotdata: reak#如果没有数据,退出 print(f"Receivedfromclient:{data.decode()}") conn.sendall('Hellofromserver')#回应客户端

在另一个终端写echo"Helloworld"|nc127.0.0.18080来进行TCP通信。

如有UG,请勿见怪,友讨论!

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/7254.html

分享给朋友:

相关文章

中国芯片产量达1399亿颗,这意味着什么?

美国并不是没有明白人,只是特朗普不懂芯片产业的情况,冒冒失失在ZZ正确下,开启了对中国芯片的掐脖子,结果没掐死,反而让人练出了铁肺。 芯片是所有科技产业的上游,美国原本在上游呆得很舒服,靠英伟达、AMD、德州仪器、高通等这些几十年霸主地位的…

如何判断 Java 工程师的基础知识是否扎实?

我来给你出几道大题,能答对70%,你就算基础扎实了。 第一部分 Java基础(27)1. 程序本质:代码是如何被执行的?CPU、操作系统、虚拟机各司何职?2. 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法3. 引用类型:…

什么样的网站能快速捕获你的心?

什么样的网站能快速捕获你的心?

大家好,我是程序员鱼皮。 大家如果平时使用网站或产品时出现了问题,一般都会去寻找 “联系客服” 的位置,从而获得人工的帮助。我们团队的面试刷题产品 - 面试鸭最近就遇到了这样一个难题:明明我们网站右下角就有联系客服按钮、而且我们每道面试题目…

为什么闲鱼越做越差?

理想的闲鱼:卖家视角:4000块钱买的手机,用了半年不想用了,挂一个3000块,和买家一顿交流,最后2500块成交,我得到了回血,买家得到了便宜; 买家视角:想用一台4000块的手机,但是手里只有2500块,来到闲鱼和卖家一顿交流,最后25…

程序员都有自己的服务器吗?

程序员都有自己的服务器吗?

2024.9. 24,有朋友咨询功耗,我没有单独给服务器弄智能插座,系统做的 esxi 也看不到,所以只能用其他角度判断供大家参考。 我有一个餐边柜改的机柜,里面白裙两盘,黑群晖 4 机械 1 mvme,一个爱快硬路由,一个联通光猫,一个…

鸿蒙系统到底是不是安卓系统?

你好,是的。 接下来我给不懂技术的人简单的说一下哄蒙系统的来龙去脉。 首先你要知道什么是开源。 ‌‌开源 (Open Source)全称为开放源代码‌,意味着任何人都可以获取和使用软件的源代码,并在遵守版权协议的前提下进行修改和再发布。‌1…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。