到底有多少人,沉迷在b站上看跟外国人闲聊啊?
过去 20 年,互联网把地球联通成了一个 “ 村 ” 。
20 年前,想学英语?
你大概率得拿上个录音机,反复倒带听新概念,又或者去英语角大声疯狂疯狂。
而现在,想学英语?很多人会跟国外友人来波面对面,点对点的聊一波。
世超前阵子就在 B 站上发现了一个小孩 up @ 花小朵和花小芽,这个账号属于两姐弟,他俩跟各国的大人 / 小孩交流聊天,从而学习英语。
这个内容乍一听平平无奇,但其实他视频播放量不俗,好几个都是百万级别。
世超也打开他主页认真看了几个,发现内容特别朴实无华,就是纯纯记录自己跟国外友人聊天的对话内容。
有次,小朋友遇到三个瑞典妹纸,在简单的问候与介绍后,他邀请对方来玩游戏,每个人轮流用英文报一个国名,然后又轮流报动物名。
大人小孩就这样玩了 8 、 9 分钟,不亦乐乎。
有次,小朋友遇到了一个同样上来学英语的俄罗斯的小男孩,这哥们也挺可爱的,明明口音一股俄罗斯味,却非要说自己是英国人。
聊了一会儿,两个小孩开始互考数学题。。。
在他的视频中,并不仅仅都是友善的人,也遇到过一些不怀好意的。
有人借助 “ 你教我点中文 ” 的名义,非要小朋友说点脏话;有人开口用带有歧视色彩的词汇;有尼泊尔人非把我国和尼泊尔共有的珠穆朗玛峰说是尼泊尔的。
好在家长应该有提前教过,小朋友不卑不亢的一一回击回去。
如此种种,让不少人觉得这个小孩跨国交流的视频很有意思,甚至开始 “ 追番 ” 。
世超也多逛了一下,发现不止是这位小朋友在用跨国聊天作为视频素材,其实好多 up 都在玩,不算是啥新鲜事儿。
我所刷到的,最早的一个做这类视频的 up 是 @ 邵艾伦 Alan ,他 2019 年开始做「 国际尬聊 」系列( 我感觉还有更早的,因为他们使用的软件已经诞生很久了 )。
主要形式跟小朋友的大差不差,就是跟各路外国友人聊天。
但内容稍有区别,小朋友注意力大多在学英语,倾向一些简单游戏,成年人聊的生活性会更强。
他连过加州的警察,从警察那边了解到加州凌晨两点多的 “ 夜景 ” ,警察说这个点他那块街上要特别注意安全。
挺有意思的是,当时这位警察正在街上值勤,他的同伴把一辆车截停了,他在帮他同伴 “ 看着点 ” 。
还会跟国外壮汉聊起日常生活中的不同,对方表示特羡慕中国手机支付的便捷性。
这类跨国交流的视频,尽管都是闲聊,但内容五花八门,啥都会聊。
有人连上了两位芝加哥的小姐姐,跟她们聊了会高中生活。
有人连线上了 17 岁的缅甸小姑娘,从她那了解到了缅甸生活现状。
或是为了节目效果,或是好奇国外友人被撩是啥反应,又或是纯粹的传递善意,有些 up 会特意夸夸其中比较友好的国际友人,甚至是说一些 “ 土味情话 ” 逗一逗。
这类视频也有好多人看,有些人甚至直接磕起了 CP 。
总之,现在跨国聊天这事儿,成为了很多 up 的视频选材,从 B 站到 YouTube 上都是如此。
因为这类视频特有流量。
粉丝只有小几万,甚至只有几千的小 up ,照样能靠跨国交流实现百万级别的播放。
艾伦算是其中比较典型的例子,原本他的视频选材涉及生活中的方方面面,但很快他应该就发现尬聊系列的播放量很高,涨粉目测也不错。
他的最多播放前四全是国际尬聊的视频↓↓
现在他近乎是专门更新这个系列。
世超也挺好奇的,为啥跨国视频为何会有这么大关注?
翻阅这些视频的评论区,有一个比较直接的原因,就是大家希望通过这些日常交流视频去学习英语。
这没毛病,你想啊,以前互联网没这么发达的时候,就有很多人会通过看《 老友记 》这类特别生活化的美剧去学习英语,而像这样直接跟外国人对话闲聊,好多用词,会比电视剧还要接地气。
但在评论区里逛得越多,世超就越觉得,学英语只是附加价值,真正吸引观众们的,其实还是因为这些视频 “ 打开了新世界的大门 ” 。
在评论区中,你可以看到超多大家对外国人真实生活的好奇和解析。
有人在他们的生活里找共同点,感叹自己的生活和国外同龄青年的也没有什么不同。
有人喜欢找不同点,了解中外习俗中的不同,而且会深入感受点滴的变化。
就像之前人们调侃的那样,随着科技的迅猛发展,地球的确已经被交通网络、社交软件连成了一个 “ 村 ” 。
现在,你只需要一两天时间就能去到地球的另一端,跟千里之外的人通信只需要每个月出点数据流量费,按下 F5 就能够迅速另外一个国家正在发生的实事。
但仔细想想,人和人之间,国和国之间仍然如此割裂。
我们对彼此一无所知,但又有诸多好奇。
因为我们生活在不同的文化中,生活在不同的理想和爱好中,对彼此的真实生活大多源于书里,甚至源于偏见。
这样的跨国交流,往大点说,就像是马可波罗的《 东方见闻录 》、利玛窦的《 中国札记 》,带来新鲜感,富有冲击力。往小了说,看个乐子,同时也是彼此沟通和了解的桥梁之一。
诚然,它所展现的世界也是片面的,也是碎片化的,是负面和正面共存的,是不完美的。
但所有的信息都来自于对生活的提纯,你能通过自己去感受到了文化异同,这就是为啥会有这么多人觉得这类视频还挺好看。
时代在发展,社会也在不断变化,我们现在对彼此的了解已经远超过百年前,甚至十年前。
但从大家对这类信息的好奇心中,你又能感受到,我们对彼此仍然相知甚少。
也许,在这一段又一段带点趣味性的闲聊中,我们能够重新认识彼此,消弭那些因为不了解产生的偏见吧。
只需五步,快速构建Python聊天室
在本文中,我们来谈一谈如何构建一个Python聊天室。
注意:你不需要安装任何额外的Python包。
作者 | Dark Soulz
译者 | 弯月,责编 | 郑丽媛
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
概念介绍大致来说,Python聊天室使用了套接字编程和多线程的概念。聊天室分为两个部分:服务器端程序socketserver.py和客户端程序chat.py。它支持聊天室或同时与多个用户连接的聊天框。但是,在进入下一阶段之前,我们先来学习套接字编程和多线程。如果不明白这两个概念,初学者很难理解下面构建的项目。
套接字编程
一般来说,你可以将套接字视为双向通信通道中的端点,帮助服务器和一个或多个客户端组加入通信。它允许客户端通过服务器与其他客户端交互。
多线程
多线程是一个子进程,可以负责运行其他任何线程中的各个命令。当用户连接到服务器时,就会创建一个新的线程,并根据为每个客户端的规范构建的套接字对象,通过单独的线程实现服务器到客户端的通信。
聊天室的工作原理:我们的聊天室使用计算机的本地IP地址,在服务器端脚本和客户端脚本之间进行通信。每当客户端连接到聊天室时,它就在服务器端脚本中显示“已建立连接”,并允许客户端开始聊天。聊天室可以允许多个客户端一起使用,并与有限的本地IP一起使用。这反过来避免了为个人运行程序的复杂性。
项目要求● 一台拥有I5核心处理器的优质PC,负责运行各种程序。
● 一个用来写注释的记事本。
● 一个IDE,通常是VS Code Editor、Atom或Sublime。
● 最重要的是,你必须在PC上安装Python才能执行任何Python程序。
● 专注。
如何构建Python聊天室?首先,在桌面上创建一个名为Python chatbox或chatroom的文件夹,用于保存所有的文件。
然后,将你的文件拖到IDE中,并创建两个文件,即chat.py (客户端脚本/GUI部分)和socketserver.py(服务器端脚本)。
注意:无需安装任何Python软件包,因为Python安装包自带所有的库。
第三,仔细阅读各个文件中的代码,并把这些代码放到你的文件中。
第四,首先执行Python socketserver.py,然后执行Python chat.py
第五,测试你的聊天框是否可以正常工作,然后这个DIY项目就完成了。
代码socketserver.py
##Python codes to do server-side part of chat room.import _threadimport socketimport threading\"\"\"AF_INET is the address domain of the socket. This is used when we have an Internet Domain with any two hosts The 2nd context of the code is the type of socket. \"\"\"s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)# piece of code to allow IP address & Porthost=\"127.0.0.1\"port=5000s.bind((host,port))s.listen(5)clients=#code to allow users to send messagesdef connectNewClient(c): while True: global clients msg = c.recv(2048) msg ='Online ('+str(clients.index(c)+1)+'): '+msg.decode('ascii') sendToAll(msg,c)def sendToAll(msg,con): for client in clients: client.send(msg.encode('ascii')) while True: c,ad=s.accept # Display message when user connects print('*Server Connected ') clients.append(c) c.send(('Online ('+str(clients.index(c)+1)+')').encode('ascii')) _thread.start_new_thread(connectNewClient,(c,))
chat.py(GUI部分)
#Gui Programming Partimport tkinterimport socketimport _threadimport sys# Code to create a new client socket and connect to the serveri = 3client = 0start = Truedef sendMessage : msg = txt.get client.send(msg.encode('ascii'))def recievingMessage (c): global i while True : msg=c.recv(2048).decode('ascii') if not msg : sys.exit(0) global start if (start) : start = False #tkinter codes starts window.title(msg) continue msglbl = tkinter.Label(window,text=msg) msglbl['font']=(\"Courier\",10) msglbl['bg']='black' msglbl['fg']='#0aff43' msglbl['width']=50 msglbl.grid(columnspan=2,column=0,row=i,padx=5) i += 1#Socket Creationdef socketCreation : c = socket.socket(socket.AF_INET, socket.SOCK_STREAM) c.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)#Local Host # import all functions /# everthing from chat.py file host = '127.0.0.1' port = 5000 c.connect((host,port)) global client client = c send['command'] = sendMessage _thread.start_new_thread(recievingMessage, (c,) )#Creating a windowwindow = tkinter.Tkwindow.title('Chatbox')window['bg']='#242424'window['padx']=10window['pady']=10#Adding Elements#Entrytxt = tkinter.Entry(window)txt['width']=50txt['relief']=tkinter.GROOVEtxt['bg']='#f5f6f7'txt['fg']='red'txt['font']=(\"Courier\",12)txt.grid(column=0,row=1,padx=5,pady=15)#Buttonsend = tkinter.Button(window,text=\"Send\")send['relief']=tkinter.GROOVEsend['bg']='red'send['fg']='white'send['activebackground']='#404040'send['padx']=3send['font']=(\"Courier\",10)send.grid(column=1,row=1,padx=5,pady=15)_thread.start_new_thread(socketCreation, )window.mainloop
总结上述给出了主要代码,本文的讲解可以帮助你理解代码的工作方式。最后,请严格执行文本的步骤,以防止运行程序时发生不必要的麻烦。感谢您的阅读!
原文:https://thecodezine.com/5-easy-way-to-build-a-python-chat-room/
本文为 CSDN 翻译,转载请注明来源出处。
Mate40 成麒麟绝唱,光刻机进厂即遭抵押,北斗指路能否解除“芯痛”?
点分享