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

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

卡卷网1年前 (2025-01-08)每日看点290

你可以尝试写一个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

分享给朋友:

相关文章

请问什么软件支持看电视直播?

请问什么软件支持看电视直播?

2024年9月6日最新更新:本文列举的 所有看电视直播、或流媒体影视资源点播的软件,我这两天又重新梳理成最新版本,最大程度保证可用性。获取方式见文末图片,或见评论。后续我也将持续更新,文章是旧的软件也会是新的,保证你拿到的都是最新可用版本。…

小米14 Pro和Redmi K70Pro怎么选?

小米14 Pro和Redmi K70Pro怎么选?

两款手机都使用了最新的骁龙8Gen3旗舰芯片,性能都是顶级,但是两款手机定位不同,卖点不同,红米K70 Pro定位主打性能的旗舰入门手机,小米14Pro定位旗舰中高端手机。具体根据个人需求与预算来选择: 两款手机的相同、相似点:都使用了骁龙…

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

我给你举个真实的例子。。 有一个人叫高伟东,在哈尔滨工作。在2012年做了一个APP。使用词根词缀背单词。名字叫: 词根词缀词典这个人编辑了2300余条词根,给10万多条单词建立了词根索引,整理了50多万条的单词记忆方法,包括新版本的诸多新…

小米14和华为mate60怎么选?

手持荣耀20,用了五年多了,使用仍然较为流畅,但是电池不太行了,于是2024年8月在家乡的小米之家购买了小米14(12+256),用了快两个月吧,说说使用体验。 外观层面,由于我使用的荣耀20放在现在妥妥地属于小屏,习惯了小屏,遂购买小米1…

为什么有人觉得华为mate60只值2000?

为什么有人觉得华为mate60只值2000?

你以为买Mate60的人真的傻?真的那么爱国? 国庆前,我家那傻子加价800多买了一台Mate60,当时还被我骂他是傻子。 可是他说一回到公司就被老板同事朋友看到,拿去反复查看,都在惊叹他这么快就买到新机。 跟亲戚朋友聚会,别人一看就知道他…

如何看待台积电,三星相继停供大陆7nm及更先进芯片?

在这个事出来之前,我就看到过一个说法,两家Foundry可以在中东建厂,让中东的Fab去干“脏活”。本质上是国内企业搞几个中东的代理人,装作是中东的初创Fabless企业去下单,人家Foundry大概率睁一只眼闭一只眼,只管数钱。然而,紧接…

发表评论

访客

看不清,换一张

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