"%3Cdiv%20class%3D%22htmledit_views%22%20id%3D%22content_views%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20id%3D%22main-toc%22%3E%3Cstrong%3E%E7%9B%AE%E5%BD%95%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%221.socket%25E5%25B1%2582-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%231.socket%25E5%25B1%2582%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E1.socket%E5%B1%82%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%222.%25E7%2590%2586%25E8%25A7%25A3socket-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%232.%25E7%2590%2586%25E8%25A7%25A3socket%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E2.%E7%90%86%E8%A7%A3socket%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%223.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597%25EF%25BC%2588secret%25EF%25BC%2589%25E7%259A%2584%25E5%258F%2591%25E5%25B1%2595%25E5%258F%25B2-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%233.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597%25EF%25BC%2588secret%25EF%25BC%2589%25E7%259A%2584%25E5%258F%2591%25E5%25B1%2595%25E5%258F%25B2%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E3.%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E5%8F%91%E5%B1%95%E5%8F%B2%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%224.tcp%25E5%258D%258F%25E8%25AE%25AE%25E5%2592%258Cudp%25E5%258D%258F%25E8%25AE%25AE-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%234.tcp%25E5%258D%258F%25E8%25AE%25AE%25E5%2592%258Cudp%25E5%258D%258F%25E8%25AE%25AE%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E4.%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%225.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597(socket)%25E7%259A%2584%25E5%259F%25BA%25E6%259C%25AC%25E6%2593%258D%25E4%25BD%259C-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%235.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597(socket)%25E7%259A%2584%25E5%259F%25BA%25E6%259C%25AC%25E6%2593%258D%25E4%25BD%259C%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E5.socket%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%226.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597(socket)%25E8%25BF%259B%25E9%2598%25B6%25E6%2593%258D%25E4%25BD%259C-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%236.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597(socket)%25E8%25BF%259B%25E9%2598%25B6%25E6%2593%258D%25E4%25BD%259C%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E6.socket%E8%BF%9B%E9%98%B6%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%227.%25E9%25BB%258F%25E5%258C%2585-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%237.%25E9%25BB%258F%25E5%258C%2585%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E7.%E9%BB%8F%E5%8C%85%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%228.%25E8%25A7%25A3%25E5%2586%25B3%25E9%25BB%258F%25E5%258C%2585-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%238.%25E8%25A7%25A3%25E5%2586%25B3%25E9%25BB%258F%25E5%258C%2585%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E8.%E8%A7%A3%E5%86%B3%E9%BB%8F%E5%8C%85%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%228.socket%25E7%259A%2584%25E6%259B%25B4%25E5%25A4%259A%25E6%2596%25B9%25E6%25B3%2595-toc%22%20style%3D%22margin-left%3A80px%3B%22%3E%3Ca%20href%3D%22%238.socket%25E7%259A%2584%25E6%259B%25B4%25E5%25A4%259A%25E6%2596%25B9%25E6%25B3%2595%22%20rel%3D%22nofollow%22%20target%3D%22_self%22%3E8.socket%E7%9A%84%E6%9B%B4%E5%A4%9A%E6%96%B9%E6%B3%95%3C%2Fa%3E%3C%2Fp%3E%0A%0A%3Chr%20id%3D%22hr-toc%22%3E%3Ch3%3E%3Ca%20name%3D%22t0%22%3E%3C%2Fa%3E1.socket%E5%B1%82%3C%2Fh3%3E%0A%0A!%5B%E5%9C%A8%E8%BF%99%E9%87%8C%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87%E6%8F%8F%E8%BF%B0%5D(%2Fmedia%2Fai%2F2019-03%2F5ccf086a-baa7-4268-a9f9-a50fb74136b7.png)%0A%0A%3Chr%3E%3Chr%3E%3Ch3%20id%3D%222.%25E7%2590%2586%25E8%25A7%25A3socket%22%3E%3Ca%20name%3D%22t1%22%3E%3C%2Fa%3E2.%E7%90%86%E8%A7%A3socket%3C%2Fh3%3E%0A%0A%3Cp%3Esocket%E6%98%AF%E5%BA%94%E7%94%A8%E5%B1%82%E4%B8%8ETCP%2FIP%E5%8D%8F%E8%AE%AE%E6%97%8F%E7%9A%84%E4%B8%AD%E9%97%B4%E8%BD%AF%E4%BB%B6%E6%8A%BD%E8%B1%A1%E5%B1%82%EF%BC%8C%E5%AE%83%E6%98%AF%E4%B8%80%E7%BB%84%E6%8E%A5%E5%8F%A3%E3%80%82%E5%9C%A8%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E4%B8%AD%EF%BC%8Csocket%E5%85%B6%E5%AE%9E%E5%B0%B1%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%A2%E8%86%9C%EF%BC%8C%E5%AE%83%E6%8A%8A%E5%A4%8D%E6%9D%82%E7%9A%84TCP%2FIP%E5%8D%8F%E8%AE%AE%E6%97%8F%E9%9A%90%E8%97%8F%E5%9C%A8socket%E6%8E%A5%E5%8F%A3%E5%90%8E%E9%9D%A2%EF%BC%8C%E5%AF%B9%E4%BA%8E%E7%94%A8%E6%88%B7%E6%9D%A5%E8%AF%B4%EF%BC%8C%E4%B8%80%E7%BB%84%E7%AE%80%E5%8D%95%E7%9A%84%E6%8E%A5%E5%8F%A3%E5%B0%B1%E6%98%AF%E5%85%A8%E9%83%A8%EF%BC%8C%E8%AE%A9socket%E5%8E%BB%E7%BB%84%E7%BB%87%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%BB%A5%E7%AC%A6%E5%90%88%E6%8C%87%E5%AE%9A%E7%9A%84%E5%8D%8F%E8%AE%AE%E3%80%82%3C%2Fp%3E%0A%0A%3Chr%3E%3Chr%3E%3Ch3%20id%3D%223.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597%25EF%25BC%2588secret%25EF%25BC%2589%25E7%259A%2584%25E5%258F%2591%25E5%25B1%2595%25E5%258F%25B2%22%3E%3Ca%20name%3D%22t2%22%3E%3C%2Fa%3E3.%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E5%8F%91%E5%B1%95%E5%8F%B2%3C%2Fh3%3E%0A%0A%3Cp%3E%E5%A5%97%E6%8E%A5%E5%AD%97%E8%B5%B7%E6%BA%90%E4%BA%8E20%E4%B8%96%E7%BA%AA70%E5%B9%B4%E4%BB%A3%3Ca%20href%3D%22https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%25E5%258A%25A0%25E5%2588%25A9%25E7%25A6%258F%25E5%25B0%25BC%25E4%25BA%259A%26amp%3Btn%3D24004469_oem_dg%26amp%3Brsv_dl%3Dgh_pl_sl_csd%22%20target%3D%22_blank%22%3E%E5%8A%A0%E5%88%A9%E7%A6%8F%E5%B0%BC%E4%BA%9A%3C%2Fa%3E%E5%A4%A7%E5%AD%A6%E4%BC%AF%E5%85%8B%E5%88%A9%E5%88%86%E6%A0%A1%E7%89%88%E6%9C%AC%E7%9A%84Unix%EF%BC%8C%E5%8D%B3%E4%BA%BA%E4%BB%AC%E6%89%80%E8%AF%B4%E7%9A%84BSD%20Unix%E3%80%82%E5%9B%A0%E6%AD%A4%EF%BC%8C%E6%9C%89%E6%97%B6%E4%BA%BA%E4%BB%AC%E4%B9%9F%E6%8A%8A%E5%A5%97%E6%8E%A5%E5%AD%97%E7%A7%B0%E4%B8%BA%E2%80%9C%E4%BC%AF%E5%85%8B%E5%88%A9%E5%A5%97%E6%8E%A5%E5%AD%97%E2%80%9D%E6%88%96%E2%80%9CBSD%E5%A5%97%E6%8E%A5%E5%AD%97%E2%80%9D%E3%80%82%E4%B8%80%E5%BC%80%E5%A7%8B%EF%BC%8C%E5%A5%97%E6%8E%A5%E5%AD%97%E8%A2%AB%E8%AE%BE%E8%AE%A1%E7%94%A8%E5%9C%A8%E5%90%8C%E4%B8%80%E5%8F%B0%E4%B8%BB%E6%9C%BA%E4%B8%8A%E5%A4%9A%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B9%8B%E9%97%B4%E7%9A%84%E9%80%9A%E8%AE%AF%EF%BC%8C%E8%BF%99%E4%B9%9F%E8%A2%AB%E7%A7%B0%E4%B8%BA%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E8%AE%AF%E6%88%96IPC%E3%80%82%E5%A5%97%E6%8E%A5%E5%AD%97%E6%9C%89%E4%B8%A4%E7%A7%8D%EF%BC%88%E6%88%96%E8%80%85%E7%A7%B0%E4%B8%BA%E6%9C%89%E4%B8%A4%E4%B8%AA%E7%A7%8D%E6%97%8F%EF%BC%89%EF%BC%8C%E5%88%86%E5%88%AB%E6%98%AF%E5%9F%BA%E4%BA%8E%E6%96%87%E4%BB%B6%E5%9E%8B%E7%9A%84%E5%92%8C%E5%9F%BA%E4%BA%8E%E7%BD%91%E7%BB%9C%E5%9E%8B%E7%9A%84%E3%80%82%3C%2Fp%3E%0A%0A%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%9F%BA%E4%BA%8E%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E5%AE%B6%E6%97%8F%EF%BC%9AAF_UNIX%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3Eunix%E4%B8%8B%E4%B8%80%E5%88%87%E7%9A%86%E6%96%87%E4%BB%B6%EF%BC%8C%E5%9F%BA%E4%BA%8E%E6%96%87%E4%BB%B6%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E8%B0%83%E7%94%A8%E7%9A%84%E5%B0%B1%E6%98%AF%E5%BA%95%E5%B1%82%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9D%A5%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%B8%A4%E4%B8%AA%E5%A5%97%E6%8E%A5%E5%AD%97%E8%BF%9B%E7%A8%8B%E8%BF%90%E8%A1%8C%E5%9C%A8%E5%90%8C%E4%B8%80%E6%9C%BA%E5%99%A8%EF%BC%8C%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E8%AE%BF%E9%97%AE%E5%90%8C%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E9%97%B4%E6%8E%A5%E5%AE%8C%E6%88%90%E9%80%9A%E4%BF%A1%3C%2Fp%3E%0A%0A%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%9F%BA%E4%BA%8E%E7%BD%91%E7%BB%9C%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E5%AE%B6%E6%97%8F%EF%BC%9AAF_INET%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%E8%BF%98%E6%9C%89AF_INET6%E8%A2%AB%E7%94%A8%E4%BA%8Eipv6%EF%BC%8C%E4%BB%A5%E5%8F%8A%E4%B8%80%E4%BA%9B%E5%85%B6%E4%BB%96%E7%9A%84%E5%9C%B0%E5%9D%80%E5%AE%B6%E6%97%8F%EF%BC%8C%E4%BB%96%E4%BB%AC%E8%A6%81%E4%B9%88%E6%98%AF%E5%8F%AA%E7%94%A8%E4%BA%8E%E6%9F%90%E4%B8%AA%E5%B9%B3%E5%8F%B0%EF%BC%8C%E8%A6%81%E4%B9%88%E5%B0%B1%E6%98%AF%E5%B7%B2%E7%BB%8F%E8%A2%AB%E5%BA%9F%E5%BC%83%EF%BC%8C%E6%88%96%E8%80%85%E6%98%AF%E5%BE%88%E5%B0%91%E8%A2%AB%E4%BD%BF%E7%94%A8%EF%BC%8C%E6%88%96%E8%80%85%E6%98%AF%E6%A0%B9%E6%9C%AC%E6%B2%A1%E6%9C%89%E5%AE%9E%E7%8E%B0%E3%80%82%E6%89%80%E6%9C%89%E5%9C%B0%E5%9D%80%E5%AE%B6%E6%97%8F%E4%B8%AD%EF%BC%8CAF_INET%E6%98%AF%E4%BD%BF%E7%94%A8%E6%9C%80%E5%B9%BF%E6%B3%9B%E7%9A%84%E4%B8%80%E4%B8%AA%EF%BC%8Cpython%E6%94%AF%E6%8C%81%E5%BE%88%E5%A4%9A%E7%A7%8D%E5%9C%B0%E5%9D%80%E5%AE%B6%E6%97%8F%EF%BC%8C%E7%94%B1%E4%BA%8E%E6%88%91%E5%8F%AA%E5%85%B3%E5%BF%83%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B%EF%BC%8C%E6%89%80%E4%BB%A5%E5%A4%A7%E9%83%A8%E5%88%86%E6%97%B6%E5%80%99%E6%88%91%E5%8F%AA%E4%BD%BF%E7%94%A8AF_INET%3C%2Fp%3E%0A%0A%3Chr%3E%3Chr%3E%3Ch3%20id%3D%224.tcp%25E5%258D%258F%25E8%25AE%25AE%25E5%2592%258Cudp%25E5%258D%258F%25E8%25AE%25AE%22%3E%3Ca%20name%3D%22t3%22%3E%3C%2Fa%3E4.%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80%3C%2Fh3%3E%0A%0A%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3ETCP%EF%BC%88Transmission%20Control%20Protocol%EF%BC%89%E5%8D%8F%E8%AE%AE%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%3Cstrong%3E%E5%8F%AF%E9%9D%A0%E7%9A%84%E3%80%81%E9%9D%A2%E5%90%91%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%8D%8F%E8%AE%AE%3C%2Fstrong%3E(eg%3A%E6%89%93%E7%94%B5%E8%AF%9D)%E3%80%81%E4%BC%A0%E8%BE%93%E6%95%88%E7%8E%87%E4%BD%8E%E5%85%A8%E5%8F%8C%E5%B7%A5%E9%80%9A%E4%BF%A1(%E5%8F%91%E9%80%81%E7%BC%93%E5%AD%98%26amp%3B%E6%8E%A5%E6%94%B6%E7%BC%93%E5%AD%98)%E3%80%81%E6%97%A0%E8%BE%B9%E7%95%8C%E7%9A%84%E5%AD%97%E8%8A%82%E6%B5%81%E3%80%82%E4%BD%BF%E7%94%A8TCP%E7%9A%84%E5%BA%94%E7%94%A8%EF%BC%9A%3Ca%20href%3D%22https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3DWeb%25E6%25B5%258F%25E8%25A7%2588%25E5%2599%25A8%26amp%3Btn%3D24004469_oem_dg%26amp%3Brsv_dl%3Dgh_pl_sl_csd%22%20target%3D%22_blank%22%3EWeb%E6%B5%8F%E8%A7%88%E5%99%A8%3C%2Fa%3E%E3%80%81%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E3%80%81%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%E7%A8%8B%E5%BA%8F%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3Etcp%E6%9C%AC%E8%B4%A8%E4%B8%8A%E5%9C%A8%E5%90%8C%E4%B8%80%E6%97%B6%E9%97%B4%E5%8F%AA%E5%85%81%E8%AE%B8%E4%B8%80%E4%B8%AA%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BF%9E%E6%8E%A5%EF%BC%8C%E5%BD%93%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%B8%8C%E6%9C%9B%E9%80%9A%E8%BF%87TCP%E4%B8%8E%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E9%80%9A%E4%BF%A1%E6%97%B6%EF%BC%8C%E4%BB%96%E4%BC%9A%E5%8F%91%E9%80%81%E4%B8%80%E4%B8%AA%E9%80%9A%E4%BF%A1%E8%AF%B7%E6%B1%82%EF%BC%8C%E6%AD%A4%E8%AF%B7%E6%B1%82%E5%BF%85%E9%A1%BB%E8%A2%AB%E9%80%81%E5%88%B0%E4%B8%80%E4%B8%AA%E7%A1%AE%E5%88%87%E7%9A%84%E5%9C%B0%E5%9D%80%EF%BC%8C%E5%9C%A8%E5%8F%8C%E6%96%B9%E2%80%9C%E6%8F%A1%E6%89%8B%E2%80%9D%E4%B9%8B%E5%90%8E%EF%BC%8CTCP%E5%B0%86%E5%9C%A8%E4%B8%A4%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B9%8B%E9%97%B4%E5%BB%BA%E7%AB%8B%E4%B8%80%E4%B8%AA%E5%85%A8%E5%8F%8C%E5%B7%A5(full-duplex)%E7%9A%84%E9%80%9A%E4%BF%A1%EF%BC%8C%E5%85%A8%E5%8F%8C%E5%B7%A5%E7%9A%84%E9%80%9A%E4%BF%A1%E5%B0%86%E5%8D%A0%E7%94%A8%E4%B8%A4%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B9%8B%E9%97%B4%E7%9A%84%E9%80%9A%E4%BF%A1%E7%BA%BF%E8%B7%AF%EF%BC%8C%E7%9B%B4%E5%88%B0%E4%BB%96%E8%A2%AB%E4%B8%80%E6%96%B9%E6%88%96%E5%8F%8C%E6%96%B9%E5%85%B3%E9%97%AD%E4%B8%BA%E6%AD%A2%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3ETCP%E6%98%AF%E8%8B%B1%E7%89%B9%E7%BD%91%E4%B8%AD%E7%9A%84%E4%BC%A0%E8%BE%93%E5%B1%82%E5%8D%8F%E8%AE%AE%EF%BC%8C%E4%BD%BF%E7%94%A8%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5%EF%BC%8C%E5%BD%93%E4%B8%BB%E5%8A%A8%E6%96%B9%E5%8F%91%E5%87%BASYN%E8%BF%9E%E6%8E%A5%E8%AF%B7%E6%B1%82%E5%90%8E%EF%BC%8C%E7%AD%89%E5%BE%85%E5%AF%B9%E6%96%B9%E5%9B%9E%E7%AD%94SYN%2BACK%5B1%5D%EF%BC%8C%E6%9C%80%E7%BB%88%E5%AF%B9%E6%96%B9%E7%9A%84SYN%E6%89%A7%E8%A1%8CACK%E7%A1%AE%E8%AE%A4%EF%BC%8C%E8%BF%99%E7%A7%8D%E5%BB%BA%E7%AB%8B%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5%E7%9A%84%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E9%98%B2%E6%AD%A2%E9%94%99%E8%AF%AF%E7%9A%84%E8%BF%9E%E6%8E%A5%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3ETCP%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E4%B8%8E%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E5%9F%BA%E6%9C%AC%E6%B5%81%E7%A8%8B%EF%BC%9A%3C%2Fstrong%3E%3Cbr%3E%3Cbr%3E%3C%2Fp%3E%0A%0A!%5B%E5%9C%A8%E8%BF%99%E9%87%8C%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87%E6%8F%8F%E8%BF%B0%5D(%2Fmedia%2Fai%2F2019-03%2F98891c12-bc48-48a9-ac2e-c8e20520974a.png)%0A%0A%3Cp%3E%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%EF%BC%9A%3Cbr%3E%0A%E4%B8%80%E6%AC%A1%EF%BC%9A%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81SYN(SEQ%3Dx)%E6%8A%A5%E6%96%87%E7%BB%99%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%EF%BC%8C%E8%BF%9B%E5%85%A5SYN_SEND%E7%8A%B6%E6%80%81.%3Cbr%3E%0A%E4%BA%8C%E6%AC%A1%EF%BC%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6%94%B6%E5%88%B0SYN%E6%8A%A5%E6%96%87%EF%BC%8C%E5%B9%B6%E5%9B%9E%E5%BA%94%E4%B8%80%E4%B8%AASYN(SEQ%3Dy).ACK%3Dx%2B1)%E6%8A%A5%E6%96%87%EF%BC%8C%E8%BF%9B%E5%85%A5SYN_RECV%E7%8A%B6%E6%80%81.%3Cbr%3E%0A%E4%B8%89%E6%AC%A1%EF%BC%9A%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%94%B6%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E7%9A%84SYN%E6%8A%A5%E6%96%87%EF%BC%8C%E5%9B%9E%E5%BA%94%E4%B8%80%E4%B8%AAACK(ACK%3Dy%2Bx)%E6%8A%A5%E6%96%87%EF%BC%8C%E8%BF%9B%E5%85%A5Established%E7%8A%B6%E6%80%81.%3C%2Fp%3E%0A%0A%3Cp%3E%E8%AF%B4%E7%99%BD%E8%AF%9D%E5%90%A7%EF%BC%8Ctcp%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%EF%BC%8C%E7%AC%AC%E4%B8%80%E6%AC%A1%E4%B8%80%E5%AE%9A%E6%98%AFclient%E5%85%88%E5%8F%91%E8%B5%B7%E8%AF%B7%E6%B1%82%E7%9A%84.%3Cbr%3E%3Cstrong%3E1.%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%85%88%E5%90%91%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%91%E9%80%81%E4%B8%80%E6%9D%A1%E8%BF%9E%E6%8E%A5%E8%AF%B7%E6%B1%82%EF%BC%8C%E7%94%A8%E4%BA%8E%E7%A1%AE%E8%AE%A4%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%98%AF%E5%90%A6%E5%8F%AF%E8%BF%9E%E6%8E%A5.%3Cbr%3E%0A2.%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%94%B6%E5%88%B0%E8%AF%B7%E6%B1%82%E5%90%8E%EF%BC%8C%E5%BC%80%E5%A7%8B%E5%81%9A%E7%9B%B8%E5%BA%94%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%B9%B6%E8%BF%94%E5%9B%9E%E7%A1%AE%E8%AE%A4%E4%BF%A1%E6%81%AF.%3Cbr%3E%0A3.%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%94%B6%E5%88%B0%E7%A1%AE%E8%AE%A4%E4%BF%A1%E6%81%AF%E5%90%8E%EF%BC%8C%E5%90%91%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%91%E9%80%81%E8%BF%9E%E6%8E%A5%E4%BF%A1%E6%81%AF%E5%B9%B6%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5.%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3E%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%EF%BC%9A%3Cbr%3E%0A1.%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%91%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%91%E9%80%81%E7%AB%AF%E5%BC%80%E8%BF%9E%E6%8E%A5%E7%9A%84%E8%AF%B7%E6%B1%82.%3Cbr%3E%0A2.%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%94%B6%E5%88%B0%E8%AF%B7%E6%B1%82%E5%90%8E%EF%BC%8C%E5%BC%80%E5%A7%8B%E5%81%9A%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%B7%A5%E4%BD%9C%EF%BC%8C%E5%90%8C%E6%97%B6%E8%BF%94%E5%9B%9E%E7%A1%AE%E8%AE%A4.%3Cbr%3E%0A3.%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%B7%B2%E5%81%9A%E5%AE%8C%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%B7%A5%E4%BD%9C%EF%BC%8C%E5%86%8D%E6%AC%A1%E5%90%91%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81%E7%A1%AE%E8%AE%A4%E4%BF%A1%E6%81%AF.%3Cbr%3E%0A4.%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%94%B6%E5%88%B0%E7%A1%AE%E8%AE%A4%E4%BF%A1%E6%81%AF%E5%90%8E%EF%BC%8C%E5%90%91%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%91%E9%80%81%E6%96%AD%E5%BC%80%E4%BF%A1%E6%81%AF%E4%BB%A5%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5.%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3E%E8%A1%A5%E5%85%85%EF%BC%9A%E5%BB%BA%E7%AB%8B%E5%92%8C%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E9%83%BD%E6%98%AF%E4%BA%A4%E6%8D%A23%E6%AC%A1%E6%8A%A5%E6%96%87%EF%BC%88SYN%2C%20ACK%2C%20FIN%EF%BC%89%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3EUDP%EF%BC%88User%20Datagram%20Protocol%EF%BC%89%E5%8D%8F%E8%AE%AE%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%3Cstrong%3E%E4%B8%8D%E5%8F%AF%E9%9D%A0%E7%9A%84%E3%80%81%E6%97%A0%E8%BF%9E%E6%8E%A5%E7%9A%84%E6%9C%8D%E5%8A%A1%EF%BC%8C%E4%BC%A0%E8%BE%93%E6%95%88%E7%8E%87%E9%AB%98%3C%2Fstrong%3E(%E5%8F%91%E9%80%81%E5%89%8D%E6%97%B6%E5%BB%B6%E5%B0%8F)%EF%BC%8C%E4%B8%80%E5%AF%B9%E4%B8%80%E3%80%81%E4%B8%80%E5%AF%B9%E5%A4%9A%E3%80%81%E5%A4%9A%E5%AF%B9%E4%B8%80%E3%80%81%E5%A4%9A%E5%AF%B9%E5%A4%9A%E3%80%81%E9%9D%A2%E5%90%91%E6%8A%A5%E6%96%87%EF%BC%8C%E5%B0%BD%E6%9C%80%E5%A4%A7%E5%8A%AA%E5%8A%9B%E6%9C%8D%E5%8A%A1%EF%BC%8C%E6%97%A0%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E3%80%82%E4%BD%BF%E7%94%A8UDP%E7%9A%84%E5%BA%94%E7%94%A8%EF%BC%9A%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F%26nbsp%3B(DNS)%E3%80%81%E8%A7%86%E9%A2%91%E6%B5%81%E3%80%81IP%E8%AF%AD%E9%9F%B3(VoIP)%E3%80%82udp%E5%85%81%E8%AE%B8%E4%B8%80%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%92%8C%E5%A4%9A%E4%B8%AA%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%8C%E6%97%B6%E9%80%9A%E4%BF%A1%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E%E6%88%91%E7%9F%A5%E9%81%93%E8%AF%B4%E8%BF%99%E4%BA%9B%E4%BD%A0%E4%BB%AC%E4%B9%9F%E4%B8%8D%E6%87%82%EF%BC%8C%E7%9B%B4%E6%8E%A5%E4%B8%8A%E5%9B%BE%EF%BC%9A%3C%2Fp%3E%0A%0A!%5B%E5%9C%A8%E8%BF%99%E9%87%8C%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87%E6%8F%8F%E8%BF%B0%5D(%2Fmedia%2Fai%2F2019-03%2F314a9385-b40c-4fc8-9a1b-9f2ec7d477c2.png)%0A%3Cp%3E%26nbsp%3B%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3EARP%EF%BC%88Address%20Resolution%20Protocol%EF%BC%89%E5%8D%8F%E8%AE%AE%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%E5%9B%A0%E4%B8%BA%E6%89%80%E6%9C%89%E5%AE%9A%E4%B9%89%E7%9A%84%E5%8D%8F%E8%AE%AE%E9%83%BD%E8%87%B3%E5%B0%91%E6%98%AF%E5%9C%A8%E7%BD%91%E7%BB%9C%E5%B1%82%E4%BB%A5%E4%B8%8A%E7%9A%84%EF%BC%8C%E6%89%80%E4%BB%A5%E5%9C%A8TCP%2FIP%E6%A8%A1%E5%9E%8B%E4%B8%AD%EF%BC%8CARP%E5%8D%8F%E8%AE%AE%E5%B1%9E%E4%BA%8EIP%E5%B1%82%EF%BC%9B%E5%8F%88%E5%9B%A0%E4%B8%BAARP%E5%8D%8F%E8%AE%AE%E6%98%AF%E5%B7%A5%E4%BD%9C%E5%9C%A8%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82%E7%9A%84%EF%BC%8C%E6%89%80%E4%BB%A5%E5%9C%A8OSI%E6%A8%A1%E5%9E%8B%E4%B8%AD%EF%BC%8CARP%E5%8D%8F%E8%AE%AE%E5%B1%9E%E4%BA%8E%E9%93%BE%E8%B7%AF%E5%B1%82%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E%E5%8D%B3%3Cstrong%3E%E5%9C%B0%E5%9D%80%E8%A7%A3%E6%9E%90%E5%8D%8F%E8%AE%AE%3C%2Fstrong%3E%EF%BC%8C%E6%9F%A5%E8%AF%A2IP%E5%9C%B0%E5%9D%80%E4%B8%8EMAC%E5%9C%B0%E5%9D%80%E7%9A%84%E5%AF%B9%E5%BA%94%E5%85%B3%E7%B3%BB%EF%BC%8C%E6%A0%B9%E6%8D%AEIP%E5%9C%B0%E5%9D%80%E6%9D%A5%E8%8E%B7%E5%8F%96%E7%89%A9%E7%90%86%E5%9C%B0%E5%9D%80%E7%9A%84%E4%B8%80%E4%B8%AATCP%2FIP%E5%8D%8F%E8%AE%AE%E3%80%82%E4%B8%BB%E6%9C%BA%E5%8F%91%E9%80%81%E4%BF%A1%E6%81%AF%E6%97%B6%E5%B0%86%E5%8C%85%E5%90%AB%E7%9B%AE%E6%A0%87IP%E5%9C%B0%E5%9D%80%E7%9A%84ARP%E8%AF%B7%E6%B1%82%E5%B9%BF%E6%92%AD%E5%88%B0%E7%BD%91%E7%BB%9C%E4%B8%8A%E7%9A%84%E6%89%80%E6%9C%89%E4%B8%BB%E6%9C%BA%EF%BC%8C%E5%B9%B6%E6%8E%A5%E6%94%B6%E8%BF%94%E5%9B%9E%E7%9A%84%E6%B6%88%E6%81%AF%EF%BC%8C%E4%BB%A5%E6%AD%A4%E7%A1%AE%E8%AE%A4%E7%9B%AE%E6%A0%87%E7%9A%84%E7%89%A9%E7%90%86%E5%9C%B0%E5%9D%80%EF%BC%8C%E6%94%B6%E5%88%B0%E8%BF%94%E5%9B%9E%E6%B6%88%E6%81%AF%E5%90%8E%EF%BC%8C%E5%B0%86%E8%AF%A5IP%E5%9C%B0%E5%9D%80%E5%92%8C%E7%89%A9%E7%90%86%E5%9C%B0%E5%9D%80%E5%AD%98%E5%85%A5%E6%9C%AC%E6%9C%BA%E7%9A%84ARP%E7%BC%93%E5%AD%98%E8%A1%A8%E4%B8%AD%EF%BC%8C%E9%BB%98%E8%AE%A4%E4%BF%9D%E7%95%99%E6%97%B6%E9%97%B4%E4%B8%BA5%E5%88%86%E9%92%9F%EF%BC%8C%E4%B8%8B%E6%AC%A1%E8%AF%B7%E6%B1%82%E6%97%B6%E5%B0%86%E7%9B%B4%E6%8E%A5%E6%9F%A5%E8%AF%A2ARP%E7%BC%93%E5%AD%98%E8%A1%A8%EF%BC%8C%E4%BB%A5%E8%8A%82%E7%BA%A6%E8%B5%84%E6%BA%90%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E%E5%9C%B0%E5%9D%80%E8%A7%A3%E6%9E%90%E5%8D%8F%E8%AE%AE%E6%97%B6%E5%BB%BA%E7%AB%8B%E5%9C%A8%E7%BD%91%E7%BB%9C%E4%B8%AD%E5%90%84%E4%B8%AA%E4%B8%BB%E6%9C%BA%E4%BA%92%E7%9B%B8%E4%BF%A1%E4%BB%BB%E7%9A%84%E5%9F%BA%E7%A1%80%E4%B8%8A%E7%9A%84%EF%BC%8C%E7%BD%91%E7%BB%9C%E4%B8%8A%E7%9A%84%E4%B8%BB%E6%9C%BA%E5%8F%AF%E4%BB%A5%E8%87%AA%E4%B8%BB%E5%8F%91%E9%80%81ARP%E5%BA%94%E7%AD%94%E6%B6%88%E6%81%AF%EF%BC%8C%E5%85%B6%E4%BB%96%E4%B8%BB%E6%9C%BA%E6%94%B6%E5%88%B0%E5%BA%94%E7%AD%94%E6%8A%A5%E6%96%87%E5%90%8E%E4%B8%8D%E4%BC%9A%E6%A3%80%E6%B5%8B%E8%AF%A5%E6%8A%A5%E6%96%87%E7%9A%84%E7%9C%9F%E5%AE%9E%E6%80%A7%EF%BC%8C%E8%80%8C%E6%98%AF%E7%9B%B4%E6%8E%A5%E5%AD%98%E5%82%A8%E5%88%B0ARP%E7%BC%93%E5%AD%98%E8%A1%A8%E4%B8%AD%E3%80%82%E6%AD%A4%E5%90%8E%E8%AF%A5%E4%B8%BB%E6%9C%BA%E5%8F%91%E9%80%81%E7%9A%84%E4%BF%A1%E6%81%AF%E5%B0%86%E6%97%A0%E6%B3%95%E5%88%B0%E5%88%B0%E9%A2%84%E4%B9%A0%E7%9A%84%E4%B8%BB%E6%9C%BA%E6%88%96%E7%BD%91%E7%BB%9C%E6%94%B6%E5%88%B0%E9%99%90%E5%88%B6%E6%88%96%E4%BC%A0%E8%BE%93%E7%9A%84%E4%BF%A1%E6%81%AF%E8%A2%AB%E6%B3%84%E6%BC%8F%E7%AD%89%3C%2Fp%3E%0A%0A%3Cul%3E%3Cli%3E%3Cstrong%3E%E4%BA%A4%E6%8D%A2%E6%9C%BA%E4%B8%8E%E8%B7%AF%E7%94%B1%E5%99%A8%E7%9A%84%E5%8C%BA%E5%88%AB%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%9A%84%E4%B8%BB%E8%A6%81%E5%8A%9F%E8%83%BD%E6%98%AF%E7%BB%84%E7%BB%87%E5%B1%80%E5%9F%9F%E7%BD%91%EF%BC%8C%E7%BB%8F%E8%BF%87%E4%BA%A4%E6%8D%A2%E6%9C%BA%E8%A7%A3%E6%9E%90%E4%BF%A1%E6%81%AF%E4%B9%8B%E5%90%8E%EF%BC%8C%E5%B0%86%E4%BF%A1%E6%81%AF%E4%BB%A5%E7%82%B9%E5%AF%B9%E7%82%B9%EF%BC%8C%E7%82%B9%E5%AF%B9%E5%A4%9A%E7%82%B9%E7%9A%84%E5%BD%A2%E5%BC%8F%E5%8F%91%E9%80%81%E7%BB%99%E5%9B%BA%E5%AE%9A%E7%AB%AF%3C%2Fp%3E%0A%0A%3Cp%3E%E8%B7%AF%E7%94%B1%E5%99%A8%E7%9A%84%E4%B8%BB%E8%A6%81%E5%8A%9F%E8%83%BD%E6%98%AF%E8%BF%9B%E8%A1%8C%E8%B7%A8%E7%BD%91%E6%AE%B5%E7%9A%84%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%EF%BC%8C%E8%B7%AF%E7%94%B1%E9%80%89%E6%8B%A9%E6%9C%80%E4%BD%B3%E8%B7%AF%E5%BE%84%3C%2Fp%3E%0A%0A%3Cp%3E%E9%A1%BA%E4%BE%BF%E8%AF%B4%E4%B8%80%E4%B8%8BOSI%E4%BA%94%E5%B1%82%E6%A8%A1%E5%9E%8B%EF%BC%9A%E7%89%A9%E7%90%86%E5%B1%82-%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82-%E7%BD%91%E7%BB%9C%E5%B1%82-%E4%BC%A0%E8%BE%93%E5%B1%82-%E5%BA%94%E7%94%A8%E5%B1%82%3C%2Fp%3E%0A%0A%3Chr%3E%3Ch3%20id%3D%225.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597(socket)%25E7%259A%2584%25E5%259F%25BA%25E6%259C%25AC%25E6%2593%258D%25E4%25BD%259C%22%3E%3Ca%20name%3D%22t4%22%3E%3C%2Fa%3E5.socket%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C%3C%2Fh3%3E%0A%0A%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3E%E5%9F%BA%E4%BA%8ETCP%E5%8D%8F%E8%AE%AE%E7%9A%84socket%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3Etcp%E6%98%AF%E9%9D%A2%E5%90%91%E8%BF%9E%E6%8E%A5%E7%9A%84%EF%BC%8C%E5%8F%AF%E9%9D%A0%E7%9A%84%EF%BC%8C%E9%9D%A2%E5%90%91%E5%AD%97%E8%8A%82%E6%B5%81%E5%BD%A2%E5%BC%8F%E7%9A%84%3Cbr%3E%0A%E5%9B%A0%E4%B8%BAtcp%E6%98%AF%E5%9F%BA%E4%BA%8E%E8%BF%9E%E6%8E%A5%E7%9A%84%EF%BC%8C%E6%89%80%E4%BB%A5%E5%BF%85%E9%A1%BB%E5%85%88%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E5%90%AF%E5%8A%A8%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8E%BB%E9%93%BE%E6%8E%A5%E6%9C%8D%E5%8A%A1%E7%AB%AF%3C%2Fp%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket.socket()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%AE%9E%E4%BE%8B%E5%8C%96%E4%B8%80%E4%B8%AAsocket%E7%9A%84%E5%AF%B9%E8%B1%A1sk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind((%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8A%8A%E8%A6%81%E7%9B%91%E5%90%AC%E7%9A%84ip%E5%92%8Cport%E7%BB%91%E5%AE%9A%E5%88%B0%E5%AF%B9%E8%B1%A1sk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%9B%91%E5%90%AC%E9%93%BE%E6%8E%A5%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn%2C%20addr%20%3D%20sk.accept()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E9%98%BB%E5%A1%9E%E7%A8%8B%E5%BA%8F%EF%BC%8C%E7%AD%89%E5%BE%85%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%93%BE%E6%8E%A5%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eret%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%8E%A5%E6%94%B6%E6%9C%80%E5%A4%9A4096%E4%B8%AA%E5%AD%97%E8%8A%82%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(ret.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%89%93%E5%8D%B0%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E6%9D%A5%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%88%AB%E5%BF%98%E4%BA%86%E8%BD%AC%E7%A0%81%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn.send(%3Cspan%20class%3D%22hljs-string%22%3E'%E5%98%BF%E5%98%BF%E5%98%BF'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%90%91%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81%E4%BF%A1%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn.close()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%B3%E9%97%AD%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%A5%97%E6%8E%A5%E5%AD%97%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%B3%E9%97%AD%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A5%97%E6%8E%A5%E5%AD%97%EF%BC%88%E5%8F%AF%E9%80%89%EF%BC%89%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket.socket()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%AE%9E%E4%BE%8B%E5%8C%96%E4%B8%80%E4%B8%AAsocket%E7%9A%84%E5%AF%B9%E8%B1%A1sk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.connect((%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8A%8A%E8%A6%81%E8%BF%9E%E6%8E%A5%E7%9A%84ip%E5%92%8Cport%E7%BB%91%E5%AE%9A%E5%88%B0%E5%AF%B9%E8%B1%A1sk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.send(%3Cspan%20class%3D%22hljs-string%22%3E'%E5%97%A8%EF%BC%81%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%81'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%90%91%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%91%E9%80%81%E4%BF%A1%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eret%20%3D%20sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E9%3C%2Fspan%3E)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E6%9C%8D%E5%8A%A1%E7%AB%AF%E4%BF%A1%E6%81%AF%EF%BC%8C%E6%8E%A5%E6%94%B6%E6%9C%80%E5%A4%9A9%E4%B8%AA%E5%AD%97%E8%8A%82%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(ret.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%B3%E9%97%AD%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%A5%97%E6%8E%A5%E5%AD%97%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cp%3E%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%81%87%E5%88%B0OSError%E6%8A%A5%E9%94%99%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%EF%BC%9A%3C%2Fp%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20SOL_SOCKET%2C%20SO_REUSEADDR%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E2%9A%A0%EF%B8%8F%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket.socket()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%AE%9E%E4%BE%8B%E5%8C%96%E4%B8%80%E4%B8%AAsocket%E7%9A%84%E5%AF%B9%E8%B1%A1sk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.setsockopt(SOL_SOCKET%2C%20SO_REUSEADDR%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E2%9A%A0%EF%B8%8F%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind((%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8A%8A%E8%A6%81%E7%9B%91%E5%90%AC%E7%9A%84ip%E5%92%8Cport%E7%BB%91%E5%AE%9A%E5%88%B0%E5%AF%B9%E8%B1%A1sk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%9B%91%E5%90%AC%E9%93%BE%E6%8E%A5%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn%2C%20addr%20%3D%20sk.accept()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E9%98%BB%E5%A1%9E%E7%A8%8B%E5%BA%8F%EF%BC%8C%E7%AD%89%E5%BE%85%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%93%BE%E6%8E%A5%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eret%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%8E%A5%E6%94%B6%E6%9C%80%E5%A4%9A4096%E4%B8%AA%E5%AD%97%E8%8A%82%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(ret.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%89%93%E5%8D%B0%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E6%9D%A5%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%88%AB%E5%BF%98%E4%BA%86%E8%BD%AC%E7%A0%81%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn.send(%3Cspan%20class%3D%22hljs-string%22%3E'%E5%98%BF%E5%98%BF%E5%98%BF'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%90%91%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81%E4%BF%A1%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn.close()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%B3%E9%97%AD%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%A5%97%E6%8E%A5%E5%AD%97%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%B3%E9%97%AD%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A5%97%E6%8E%A5%E5%AD%97%EF%BC%88%E5%8F%AF%E9%80%89%EF%BC%89%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3E%E5%9F%BA%E4%BA%8EUDP%E5%8D%8F%E8%AE%AE%E7%9A%84socket%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3Eudp%E6%98%AF%E6%97%A0%E8%BF%9E%E6%8E%A5%E7%9A%84%EF%BC%8C%E4%B8%8D%E5%8F%AF%E9%9D%A0%E7%9A%84%EF%BC%8C%E9%9D%A2%E5%90%91%E5%AD%97%E8%8A%82%E6%B5%81%E5%BD%A2%E5%BC%8F%E7%9A%84%3Cbr%3E%0A%E5%9B%A0%E4%B8%BAudp%E6%98%AF%E6%97%A0%E8%BF%9E%E6%8E%A5%E7%9A%84%EF%BC%8C%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E4%B9%8B%E5%90%8E%E5%8F%AF%E4%BB%A5%E7%9B%B4%E6%8E%A5%E6%8E%A5%E5%8F%97%E4%BF%A1%E6%81%AF%EF%BC%8C%E4%B8%8D%E9%9C%80%E8%A6%81%E6%8F%90%E5%89%8D%E5%BB%BA%E7%AB%8B%E9%93%BE%E6%8E%A5%3C%2Fp%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket.socket(type%3Dsocket.SOCK_DGRAM)%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%88%9B%E5%BB%BA%E5%9F%BA%E4%BA%8Eudp%E5%8D%8F%E8%AE%AE%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A5%97%E6%8E%A5%E5%AD%97%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind((%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%B0%86ip%E5%92%8Cport%E7%BB%91%E5%AE%9A%E5%88%B0%E5%A5%97%E6%8E%A5%E5%AD%97sk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Emsg%2C%20addr%20%3D%20sk.recvfrom(%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%8E%A5%E6%94%B6%E6%9C%80%E5%A4%9A1024%E4%B8%AA%E5%AD%97%E8%8A%82%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(msg.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.sendto(%3Cspan%20class%3D%22hljs-string%22%3E'%E5%98%BF%E5%98%BF%E5%98%BF'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%2C%20addr)%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%90%91%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81%E4%BF%A1%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'%E5%97%A8%EF%BC%81%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%81'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket.socket(type%3Dsocket.SOCK_DGRAM)%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%88%9B%E5%BB%BA%E5%9F%BA%E4%BA%8Eudp%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.sendto(s%2C%20ip_port)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%90%91%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%91%E9%80%81%E4%BF%A1%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Emsg%2C%20addr%20%3D%20sk.recvfrom(%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E6%9C%8D%E5%8A%A1%E7%AB%AF%E4%BF%A1%E6%81%AF%EF%BC%8C%E6%8E%A5%E6%94%B6%E6%9C%80%E5%A4%9A1024%E4%B8%AA%E5%AD%97%E8%8A%82%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(msg.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%2C%20addr)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3Esocket%E5%8F%82%E6%95%B0%E8%AF%A6%E8%A7%A3%EF%BC%9A%3Cem%3Edef%20__init__(self%2C%20family%3D-1%2C%20type%3D-1%2C%20proto%3D-1%2C%20fileno%3DNone)%3A%3C%2Fem%3E%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%3Cstrong%3Efamily%EF%BC%9A%3C%2Fstrong%3E%E5%9C%B0%E5%9D%80%E7%B3%BB%E5%88%97%E5%BA%94%E4%B8%BAAF_INFT(%E9%BB%98%E8%AE%A4%E5%80%BC)%EF%BC%8CAF_INET6%2C%20AF_UNIX%2C%20AF_CAN%E6%88%96AF_RDS.%3Cbr%3E%0A%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%26nbsp%3BAF_UNIX%E5%9F%9F%E5%AE%9E%E9%99%85%E4%B8%8A%E6%98%AF%E4%BD%BF%E7%94%A8%E6%9C%AC%E5%9C%B0%E7%9A%84socket%E6%96%87%E4%BB%B6%E6%9D%A5%E9%80%9A%E8%AE%AF.%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3Etype%EF%BC%9A%3C%2Fstrong%3E%E5%A5%97%E6%8E%A5%E5%AD%97%E7%B1%BB%E5%9E%8B%E5%BA%94%E4%B8%BASOCK_STREAM(%E9%BB%98%E8%AE%A4%E5%80%BC)%EF%BC%8CSOCK_DGRAM%2C%20SOCK_RAW%E6%88%96%E5%85%B6%E4%BB%96SOCK_%E5%B8%B8%E9%87%8F%E4%B9%8B%E4%B8%80.%3Cbr%3E%0A%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BSOCK_STREAM%E6%98%AF%E5%9F%BA%E4%BA%8ETCP%E7%9A%84%EF%BC%8C%E6%9C%89%E4%BF%9D%E9%9A%9C%E7%9A%84(%E5%8D%B3%E8%83%BD%E4%BF%9D%E8%AF%81%E6%95%B0%E6%8D%AE%E6%AD%A3%E7%A1%AE%E4%BC%A0%E9%80%81%E5%88%B0%E5%AF%B9%E6%96%B9)%E9%9D%A2%E5%90%91%E8%BF%9E%E6%8E%A5%E7%9A%84SOCKET%EF%BC%8C%E5%A4%9A%E7%94%A8%E4%BA%8E%E8%B5%84%E6%96%99%E4%BC%A0%E9%80%81.%3Cbr%3E%0A%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BSOCK_DGRAM%E6%98%AF%E5%9F%BA%E4%BA%8EUDP%E7%9A%84%EF%BC%8C%E6%97%A0%E4%BF%9D%E9%9A%9C%E7%9A%84%E9%9D%A2%E5%90%91%E6%B6%88%E6%81%AF%E7%9A%84socket%EF%BC%8C%E5%A4%9A%E7%94%A8%E4%BA%8E%E5%9C%A8%E7%BD%91%E7%BB%9C%E4%B8%8A%E5%8F%91%E5%B9%BF%E6%92%AD%E6%B6%88%E6%81%AF.%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3Eproto%EF%BC%9A%3C%2Fstrong%3E%E5%8D%8F%E8%AE%AE%E5%8F%B7%E9%80%9A%E5%B8%B8%E4%B8%BA%E9%9B%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%9C%81%E7%95%A5%EF%BC%8C%E6%88%96%E8%80%85%E5%9C%A8%E5%9C%B0%E5%9D%80%E6%97%8F%E4%B8%BAAF_CAN%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%8D%8F%E8%AE%AE%E5%BA%94%E4%B8%BACAN_RAW%E6%88%96CAN_BCM%E4%B9%8B%E4%B8%80.%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3Efileno%EF%BC%9A%3C%2Fstrong%3E%E5%A6%82%E6%9E%9C%E6%8C%87%E5%AE%9A%E4%BA%86fileno%2C%E5%88%99%E5%85%B6%E4%BB%96%E5%8F%82%E6%95%B0%E5%B0%86%E8%A2%AB%E5%BF%BD%E7%95%A5%2C%E5%AF%BC%E8%87%B4%E5%B8%A6%E6%9C%89%E6%8C%87%E5%AE%9A%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E8%BF%94%E5%9B%9E.%3Cbr%3E%0A%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%E4%B8%8Esocket.fromfd()%E4%B8%8D%E5%90%8C%2Cfileno%E5%B0%86%E8%BF%94%E5%9B%9E%E7%9B%B8%E5%90%8C%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%2C%E8%80%8C%E4%B8%8D%E6%98%AF%E9%87%8D%E5%A4%8D%E7%9A%84.%3Cbr%3E%0A%26nbsp%3B%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%E8%BF%99%E5%8F%AF%E8%83%BD%E6%9C%89%E5%8A%A9%E4%BA%8E%E4%BD%BF%E7%94%A8socket.close()%E5%85%B3%E9%97%AD%E4%B8%80%E4%B8%AA%E7%8B%AC%E7%AB%8B%E7%9A%84%E6%8F%92%E5%BA%A7.%3C%2Fp%3E%0A%0A%3Chr%3E%3Chr%3E%3Ch3%20id%3D%226.%25E5%25A5%2597%25E6%258E%25A5%25E5%25AD%2597(socket)%25E8%25BF%259B%25E9%2598%25B6%25E6%2593%258D%25E4%25BD%259C%22%3E%3Ca%20name%3D%22t5%22%3E%3C%2Fa%3E6.socket%E8%BF%9B%E9%98%B6%3C%2Fh3%3E%0A%0A%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3E%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%8F%91%E9%80%81%E7%AB%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-function%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Edef%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-title%22%3Esender%3C%2Fspan%3E%3Cspan%20class%3D%22hljs-params%22%3E(file_path%3DNone%2C%20host%3D%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20port%3D%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%3C%2Fspan%3E%3A%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-string%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%22%22%22%3C%2Fspan%3E%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%E5%BF%85%E9%A1%BB%E4%BC%A0%E5%85%A5%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20author%3A%20zyk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20file_path%3A%20%E8%A6%81%E4%BC%A0%E9%80%81%E7%9A%84%E6%96%87%E4%BB%B6%E7%BB%9D%E5%AF%B9%E8%B7%AF%E5%BE%84%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20host%3A%20%E6%8E%A5%E6%94%B6%E7%AB%AF%E7%9A%84IP%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20port%3A%20%E6%8E%A5%E6%94%B6%E7%AB%AF%E7%9A%84%E7%AB%AF%E5%8F%A3%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%22%22%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20os%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20path%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20hashlib%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20md5%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20time%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20sleep%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20file_name%20%3D%20path.basename(file_path)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%8E%B7%E5%8F%96%E8%A6%81%E4%BC%A0%E9%80%81%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E7%A7%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20file_size%20%3D%20path.getsize(file_path)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%8E%B7%E5%8F%96%E8%A6%81%E4%BC%A0%E9%80%81%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20name_size%20%3D%20file_name%20%2B%20%3Cspan%20class%3D%22hljs-string%22%3E'%2F'%3C%2Fspan%3E%20%2B%20str(file_size)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E4%BD%A0%E8%A6%81%E4%BC%A0%E9%80%81%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%BA%EF%BC%9A%25s%EF%BC%8C%E5%A4%A7%E5%B0%8F%E4%B8%BA%EF%BC%9A%25s%E5%AD%97%E8%8A%82%22%3C%2Fspan%3E%20%25%20(file_name%2C%20file_size))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20md5%20%3D%20md5()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk%20%3D%20socket.socket()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%5Cn%E6%AD%A3%E5%9C%A8%E5%B0%9D%E8%AF%95%E8%BF%9E%E6%8E%A5%E6%8E%A5%E6%94%B6%E7%AB%AF%22%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.5%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.3%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2230%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.2%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2231%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E'%5Cn%5Cn'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2232%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.connect_ex((host%2C%20port))%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%B0%9D%E8%AF%95%E8%BF%9E%E6%8E%A5%E6%8E%A5%E6%94%B6%E7%AB%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2233%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.send(name_size.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E4%BC%A0%E9%80%81%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2234%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E8%BF%9E%E6%8E%A5%E6%88%90%E5%8A%9F%EF%BC%8C%E5%B7%B2%E5%8F%91%E9%80%81%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF%5Cn%E7%AD%89%E5%BE%85%E6%8E%A5%E6%94%B6%E7%AB%AF%E8%BF%94%E5%9B%9E%E7%A1%AE%E8%AE%A4%E4%BF%A1%E6%81%AF....%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2235%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2236%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E).decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%20!%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'y'%3C%2Fspan%3E%3A%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%88%A4%E6%96%AD%E6%8E%A5%E6%94%B6%E7%AB%AF%E6%98%AF%E5%90%A6%E8%A6%81%E6%8E%A5%E6%94%B6%E6%96%87%E4%BB%B6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2237%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%8E%A5%E6%94%B6%E7%AB%AF%E6%8B%92%E7%BB%9D%E4%BA%86%E6%8E%A5%E6%94%B6%22%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2238%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ereturn%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2239%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2240%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewith%3C%2Fspan%3E%20open(file_path%2C%20%3Cspan%20class%3D%22hljs-string%22%3E'rb'%3C%2Fspan%3E)%3Cspan%20class%3D%22hljs-keyword%22%3Eas%3C%2Fspan%3E%20f%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2241%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E4%BC%A0%E9%80%81%E4%B8%AD%22%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2242%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2243%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20file_size%20%26gt%3B%20%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2244%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20read%20%3D%20f.read(%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%AF%8F%E6%AC%A1%E4%BC%A0%E9%80%811500%E4%B8%AA%E5%AD%97%E8%8A%82%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2245%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20md5.update(read)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%94%9F%E6%88%90%E6%A0%A1%E9%AA%8C%E5%80%BC%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2246%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20sk.send(read)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2247%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20file_size%20-%3D%20%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2248%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.3%3C%2Fspan%3E)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E9%81%BF%E5%85%8D%E9%BB%8F%E5%8C%85%EF%BC%8C%E4%BC%A0%E4%B8%80%E6%AC%A1%E5%81%9C%E4%B8%80%E4%BC%9A%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2249%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2250%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2251%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%5Cn%E6%A0%A1%E9%AA%8C%E4%B8%AD%22%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2252%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.5%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2253%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2254%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.3%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2255%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2256%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.2%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2257%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E'%5Cn%5Cn'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2258%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20verify%20%3D%20sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E7%AB%AF%E7%9A%84%E6%A0%A1%E9%AA%8C%E5%80%BC%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2259%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2260%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20verify.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%20%3D%3D%20md5.hexdigest()%3A%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%A0%A1%E9%AA%8C%E6%96%87%E4%BB%B6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2261%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20sk.send(verify)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2262%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%96%87%E4%BB%B6%E4%BC%A0%E9%80%81%E6%88%90%E5%8A%9F%EF%BC%81%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2263%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eelse%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2264%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20sk.send(%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%8C%E6%88%91%E6%98%AF%E5%A4%B1%E8%B4%A5%22%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2265%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%A0%A1%E9%AA%8C%E5%A4%B1%E8%B4%A5%EF%BC%81%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2266%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2267%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E7%AB%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-function%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Edef%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-title%22%3Ereceiving_end%3C%2Fspan%3E%3Cspan%20class%3D%22hljs-params%22%3E(file_path%3DNone%2C%20ip%3D%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20port%3D%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E%2C%20encoding%3D%3Cspan%20class%3D%22hljs-string%22%3E'GBK'%3C%2Fspan%3E)%3C%2Fspan%3E%3A%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-string%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%22%22%22%3C%2Fspan%3E%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%E6%8E%A5%E6%94%B6%E7%9A%84%E6%96%87%E4%BB%B6%E9%BB%98%E8%AE%A4%E5%AD%98%E6%94%BE%E5%88%B0%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%E4%B8%AD%E9%80%94%E9%80%80%E5%87%BA%E7%A8%8B%E5%BA%8F%E5%90%8E%EF%BC%8C%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%86%8D%E6%AC%A1%E8%BF%90%E8%A1%8C%E5%A4%B1%E8%B4%A5%EF%BC%8C%E6%AD%A4%E6%97%B6%E5%8F%AF%E5%B0%9D%E8%AF%95%E6%9B%B4%E6%8D%A2%E7%9B%91%E5%90%AC%E7%AB%AF%E5%8F%A3%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20author%3A%20zyk%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20file_path%3A%20%E6%8E%A5%E6%94%B6%E7%9A%84%E6%96%87%E4%BB%B6%E5%AD%98%E6%94%BE%E8%B7%AF%E5%BE%84%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20host%3A%20%E7%9B%91%E5%90%AC%E7%9A%84IP%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aparam%20port%3A%20%E7%9B%91%E5%90%AC%E7%9A%84%E7%AB%AF%E5%8F%A3%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%3Aencoding%3A%20%E6%8E%A5%E6%94%B6%E7%9A%84%E6%96%87%E4%BB%B6%E7%9A%84%E7%BC%96%E7%A0%81%E6%A0%BC%E5%BC%8F%EF%BC%8Cwindows%E4%B8%80%E8%88%AC%E4%B8%8D%E4%BC%9A%E6%8A%A5%E9%94%99%EF%BC%8C%E5%90%A6%E5%88%99'utf-8'%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-string%22%3E%20%20%20%20%22%22%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20os%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20path%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20hashlib%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20md5%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20time%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20sleep%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-keyword%22%3Enot%3C%2Fspan%3E%20file_path%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20file_path%20%3D%20path.abspath(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20md5%20%3D%20md5()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk%20%3D%20socket.socket()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.bind((ip%2C%20port))%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%A1%AE%E5%AE%9A%E8%A6%81%E7%9B%91%E5%90%AC%E7%9A%84ip%E5%92%8C%E7%AB%AF%E5%8F%A3%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.listen()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%BC%80%E5%A7%8B%E7%9B%91%E5%90%AC%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E7%AD%89%E5%BE%85%E5%8F%91%E9%80%81%E7%AB%AF%E8%BF%9E%E6%8E%A5....%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn%2C%20addr%20%3D%20sk.accept()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E9%98%BB%E5%A1%9E%E7%A8%8B%E5%BA%8F%EF%BC%8C%E7%AD%89%E5%BE%85%E5%AE%A2%E6%9C%8D%E7%AB%AF%E8%BF%9E%E6%8E%A5%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%8F%91%E9%80%81%E7%AB%AF%E5%B7%B2%E8%BF%9E%E6%8E%A5%EF%BC%8C%E5%8F%91%E9%80%81%E7%AB%AFIP%E4%B8%BA%EF%BC%9A%25s%5Cn%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2230%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%AD%A3%E5%9C%A8%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF%22%3C%2Fspan%3E%20%25%20(addr%5B%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%5D)%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2231%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.5%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2232%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2233%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.3%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2234%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2235%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.2%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2236%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E'%5Cn'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2237%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2238%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20name_size%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E).decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2239%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20file_name%2C%20file_size%20%3D%20name_size.split(%3Cspan%20class%3D%22hljs-string%22%3E'%2F'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2240%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20file_size%20%3D%20int(file_size)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2241%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2242%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20oper%20%3D%20input(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%9A%25s%5Ct%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F%EF%BC%9A%25s%E5%AD%97%E8%8A%82%5Cn%22%3C%2Fspan%3E%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%88%A4%E6%96%AD%E7%94%A8%E6%88%B7%E6%93%8D%E4%BD%9C%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2243%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-string%22%3E%22%E7%A1%AE%E8%AE%A4%E6%8E%A5%E6%94%B6%E8%AF%B7%E8%BE%93%E5%85%A5'y'%2C%20%E5%90%A6%E5%88%99%E5%8F%96%E6%B6%88%E6%8E%A5%E6%94%B6%E8%AF%A5%E6%96%87%E4%BB%B6%EF%BC%9A%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2244%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%25%20(file_name%2C%20file_size))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2245%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn.send(oper.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%BF%94%E5%9B%9E%E6%93%8D%E4%BD%9C%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2246%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20oper%20!%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'y'%3C%2Fspan%3E%3A%20%3Cspan%20class%3D%22hljs-keyword%22%3Ereturn%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2247%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2248%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewith%3C%2Fspan%3E%20open(%3Cspan%20class%3D%22hljs-string%22%3E'zyk.'%3C%2Fspan%3E%20%2B%20file_name%2C%20%3Cspan%20class%3D%22hljs-string%22%3E'w'%3C%2Fspan%3E)%3Cspan%20class%3D%22hljs-keyword%22%3Eas%3C%2Fspan%3E%20f%3A%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%B3%A8%E6%84%8F%E9%81%BF%E5%85%8D%E6%96%87%E4%BB%B6%E9%87%8D%E5%90%8D%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2249%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%8E%A5%E6%94%B6%E4%B8%AD%22%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2250%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2251%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20file_size%20%26gt%3B%20%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2252%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20ret%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2253%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20md5.update(ret)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%94%9F%E6%88%90%E6%A0%A1%E9%AA%8C%E5%80%BC%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2254%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20f.write(ret.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2255%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20file_size%20-%3D%20%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2256%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2257%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2258%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%5Cn%E6%A0%A1%E9%AA%8C%E4%B8%AD%22%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2259%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.5%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2260%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2261%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.3%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2262%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2263%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sleep(%3Cspan%20class%3D%22hljs-number%22%3E0.2%3C%2Fspan%3E)%3B%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2264%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E'.'%3C%2Fspan%3E%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E'%5Cn%5Cn'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2265%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn.send(md5.hexdigest().encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%BF%94%E5%9B%9E%E6%A0%A1%E9%AA%8C%E5%80%BC%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2266%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2267%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E1500%3C%2Fspan%3E).decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%20%3D%3D%20md5.hexdigest()%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2268%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%96%87%E4%BB%B6%E6%8E%A5%E6%94%B6%E6%88%90%E5%8A%9F%EF%BC%81%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2269%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eelse%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2270%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%A0%A1%E9%AA%8C%E5%A4%B1%E8%B4%A5%EF%BC%81%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2271%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2272%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2273%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3E%E9%AA%8C%E8%AF%81%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%88%E6%B3%95%E6%80%A7%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20hmac%2C%20os%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Elength_bytes%2C%20encod%2C%20ip_port%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E32%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E%2C%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esalt%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3Eb%22hi%2C%20I'm%20salt.%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Erandom_bytes%20%3D%20os.urandom(length_bytes)%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%94%9F%E6%88%90%E9%9A%8F%E6%9C%BAbytes%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eserver_results%20%3D%20hmac.new(salt%2C%20random_bytes).digest()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%9C%8D%E5%8A%A1%E7%AB%AF%E7%BB%93%E6%9E%9C%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2C%20SOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.setsockopt(SOL_SOCKET%2C%20SO_REUSEADDR%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn%2C%20addr%20%3D%20sk.accept()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn.sendall(random_bytes)%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E4%B8%8B%E5%8F%91%E9%9A%8F%E6%9C%BAbytes%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eclient_results%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E16%3C%2Fspan%3E)%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E7%BB%93%E6%9E%9C%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20client_results%20!%3D%20server_results%3A%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%88%A4%E6%96%AD%E5%90%88%E6%B3%95%E6%80%A7%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E8%BF%9E%E6%8E%A5%E4%B8%8D%E5%90%88%E6%B3%95%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eelse%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%90%88%E6%B3%95%E8%BF%9E%E6%8E%A5%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20hmac%2C%20os%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Elength_bytes%2C%20encod%2C%20ip_port%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E32%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E%2C%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esalt%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3Eb%22hi%2C%20I'm%20salt.%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.setsockopt(SOL_SOCKET%2C%20SO_REUSEADDR%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.connect_ex(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Erandoim_bytes%20%3D%20sk.recv(length_bytes)%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E9%9A%8F%E6%9C%BAbytes%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eclient_results%20%3D%20hmac.new(salt%2C%20randoim_bytes).digest()%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%AE%A1%E7%AE%97%E7%BB%93%E6%9E%9C%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.sendall(client_results)%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E4%B8%8A%E4%BC%A0%E7%BB%93%E6%9E%9C%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%81%87%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20hmac%2C%20os%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Elength_bytes%2C%20encod%2C%20ip_port%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E32%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E%2C%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Epseudo_salt%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%8C%E6%88%91%E6%98%AF%E5%81%87%E7%9B%90%22%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.setsockopt(SOL_SOCKET%2C%20SO_REUSEADDR%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.connect_ex(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Erandom_bytes%20%3D%20sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E32%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eclient_results%20%3D%20hmac.new(pseudo_salt%2C%20random_bytes).digest()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.sendall(client_results)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cp%3E%26nbsp%3B%3C%2Fp%3E%0A%0A%3Cul%3E%3Cli%3E%0A%09%3Cp%3E%3Cstrong%3E%E8%81%8A%E5%A4%A9%3C%2Fstrong%3E%3C%2Fp%3E%0A%09%3C%2Fli%3E%0A%3C%2Ful%3E%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eudp_sk%20%3D%20socket.socket(socket.AF_INET%2C%20socket.SOCK_DGRAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eudp_sk.bind(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Etry%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20msg%2C%20addr%20%3D%20udp_sk.recvfrom(%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%9D%A5%E8%87%AA%5B%25s%3A%25s%5D%E7%9A%84%E4%B8%80%E6%9D%A1%E6%B6%88%E6%81%AF%EF%BC%9A%5C033%5B1%3B36m%25s%5C033%5B0m%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%25(addr%5B%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%5D%2C%20addr%5B%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%5D%2C%20msg.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20bk_msg%20%3D%20input(%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%9B%9E%E5%A4%8D%E6%B6%88%E6%81%AF%EF%BC%9A%22%3C%2Fspan%3E).strip()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20udp_sk.sendto(bk_msg.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%2C%20addr)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eexcept%3C%2Fspan%3E%20Exception%20%3Cspan%20class%3D%22hljs-keyword%22%3Eas%3C%2Fspan%3E%20e%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(e)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efinally%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20udp_sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3EBUFSIZE%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Ename_di%20%3D%20%5B(%3Cspan%20class%3D%22hljs-string%22%3E'%E8%B5%B5%E4%B8%BD%E9%A2%96'%3C%2Fspan%3E%2C%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20(%3Cspan%20class%3D%22hljs-string%22%3E'%E6%9D%A8%E5%B9%82'%3C%2Fspan%3E%2C%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20(%3Cspan%20class%3D%22hljs-string%22%3E'%E7%99%BD%E7%99%BE%E4%BD%95'%3C%2Fspan%3E%2C%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20(%3Cspan%20class%3D%22hljs-string%22%3E'%E8%BF%AA%E4%B8%BD%E7%83%AD%E5%B7%B4'%3C%2Fspan%3E%2C%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E4096%3C%2Fspan%3E))%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%5D%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eudp_sk%20%3D%20socket.socket(socket.AF_INET%2C%20socket.SOCK_DGRAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Etry%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E9%80%89%E6%8B%A9%E8%BA%AB%E4%BB%BD%EF%BC%9A%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Efor%3C%2Fspan%3E%20s%2Ci%20%3Cspan%20class%3D%22hljs-keyword%22%3Ein%3C%2Fspan%3E%20enumerate(name_di%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20print(s%2C%20i%5B%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%5D)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Etry%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20sum%20%3D%20int(input(%3Cspan%20class%3D%22hljs-string%22%3E%22%5Cn%E5%BA%8F%E5%8F%B7%EF%BC%9A%22%3C%2Fspan%3E).strip())%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20sum%20%26lt%3B%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E8%BE%93%E5%85%A5%E6%9C%89%E8%AF%AF%EF%BC%81%5Cn%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Econtinue%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20ip_port%20%3D%20name_di%5Bsum%3Cspan%20class%3D%22hljs-number%22%3E-1%3C%2Fspan%3E%5D%5B%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%5D%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eexcept%3C%2Fspan%3E%20Exception%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E8%BE%93%E5%85%A5%E6%9C%89%E8%AF%AF%EF%BC%81%5Cn%22%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Econtinue%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2230%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20msg%20%3D%20input(%3Cspan%20class%3D%22hljs-string%22%3E%22%E8%BE%93%E5%85%A5%E6%B6%88%E6%81%AF%EF%BC%9A%22%3C%2Fspan%3E).strip().encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2231%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20udp_sk.sendto(msg%2C%20ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2232%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2233%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20bk_msg%2C%20addr%20%3D%20udp_sk.recvfrom(BUFSIZE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2234%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E6%9D%A5%E8%87%AA%5B%25s%3A%25s%5D%E7%9A%84%E6%B6%88%E6%81%AF%EF%BC%9A%5C033%5B1%3B36m%25s%5C033%5B0m%22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2235%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%25(addr%5B%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%5D%2C%20addr%5B%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%5D%2C%20bk_msg.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2236%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2237%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eexcept%3C%2Fspan%3E%20Exception%20%3Cspan%20class%3D%22hljs-keyword%22%3Eas%3C%2Fspan%3E%20e%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2238%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(e)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2239%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efinally%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2240%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20udp_sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Chr%3E%3Chr%3E%3Ch3%20id%3D%227.%25E9%25BB%258F%25E5%258C%2585%22%3E%3Ca%20name%3D%22t6%22%3E%3C%2Fa%3E7.%E9%BB%8F%E5%8C%85%3C%2Fh3%3E%0A%0A%3Cul%3E%3Cli%3E%3Cstrong%3E%E9%BB%8F%E5%8C%85%E6%88%90%E5%9B%A0%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E1.%E5%9C%A8%E5%8F%91%E9%80%81%E7%AB%AF%E5%8F%91%E9%80%81%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%8E%A5%E6%94%B6%E7%AB%AF%E4%B8%8D%E7%9F%A5%E9%81%93%E8%AF%A5%E5%A6%82%E4%BD%95%E5%8E%BB%E6%8E%A5%E6%94%B6%EF%BC%8C%E5%AF%BC%E8%87%B4%E6%88%90%E6%95%B0%E6%8D%AE%E6%B7%B7%E4%B9%B1%E7%9A%84%E6%83%85%E5%86%B5.%3Cbr%3E%0A2.%E5%9C%A8tcp%E5%8D%8F%E8%AE%AE%E4%B8%AD%EF%BC%8C%E6%9C%89%E4%B8%80%E4%B8%AA%E5%90%88%E5%8C%85%E6%9C%BA%E5%88%B6(Nagle%E7%AE%97%E6%B3%95)%EF%BC%8C%E5%AE%83%E4%BC%9A%E5%B0%86%E5%A4%9A%E6%AC%A1%E5%8F%91%E9%80%81%E7%9A%84%E9%97%B4%E9%9A%94%E8%BE%83%E5%B0%8F%E4%B8%94%E6%95%B0%E6%8D%AE%E8%BE%83%E5%B0%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E6%89%93%E5%8C%85%EF%BC%8C%E7%84%B6%E5%90%8E%E4%B8%80%E6%AC%A1%E6%80%A7%E5%8F%91%E9%80%81.%3Cbr%3E%0A3.%E8%BF%98%E6%9C%89%E4%B8%80%E4%B8%AA%E6%8B%86%E5%8C%85%E6%9C%BA%E5%88%B6%EF%BC%8C%E5%9C%A8%E5%8F%91%E9%80%81%E7%AB%AF%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%8F%97%E5%88%B0%E7%BD%91%E5%8D%A1%E7%9A%84MTU%E9%99%90%E5%88%B6%EF%BC%8C%E4%BC%9A%E5%AF%BC%E8%87%B4%E8%B6%85%E8%BF%87MTU%E6%9C%80%E5%A4%A7%E5%80%BC%E9%99%90%E5%88%B6%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%E8%A2%AB%E6%8B%86%E5%88%86%E6%88%90%E5%A4%9A%E4%B8%AA%E5%B0%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%E8%BF%9B%E8%A1%8C%E4%BC%A0%E8%BE%93%EF%BC%8C%E5%BD%93%E4%BC%A0%E8%BE%93%E5%88%B0%E7%9B%AE%E6%A0%87%E4%B8%BB%E6%9C%BA%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%B1%82%E6%97%B6%EF%BC%8C%E4%BC%9A%E9%87%8D%E6%96%B0%E5%B0%86%E5%A4%9A%E4%B8%AA%E5%B0%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E5%90%88%E5%B9%B6%E6%88%90%E5%8E%9F%E6%9C%AC%E7%9A%84%E6%95%B0%E6%8D%AE.%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%9F%BA%E4%BA%8ETCP%E5%AE%9E%E7%8E%B0%E7%9A%84%E9%BB%8F%E5%8C%85%E7%8E%B0%E8%B1%A1%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20subprocess%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3EBUFSIZE%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E1472%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2C%20SOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.setsockopt(SOL_SOCKET%2C%20SO_REUSEADDR%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen(%3Cspan%20class%3D%22hljs-number%22%3E5%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-keyword%22%3ETrue%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn%2C%20addr%20%3D%20sk.accept()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%9A%22%3C%2Fspan%3E%2C%20addr)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-keyword%22%3ETrue%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20cmd%20%3D%20conn.recv(BUFSIZE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20res%20%3D%20subprocess.Popen(cmd.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20shell%3D%3Cspan%20class%3D%22hljs-keyword%22%3ETrue%3C%2Fspan%3E%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20stdout%3Dsubprocess.PIPE%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20stderr%3Dsubprocess.PIPE%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20stdin%3Dsubprocess.PIPE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20stdout%20%3D%20res.stdout.read()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20stderr%20%3D%20res.stderr.read()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2230%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20conn.send(stdout)%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20stdout%20%3Cspan%20class%3D%22hljs-keyword%22%3Eelse%3C%2Fspan%3E%20conn.send(stderr)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3EBUFSIZE%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E1472%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2C%20SOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eret%20%3D%20sk.connect_ex(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-keyword%22%3ETrue%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20sk.send(%3Cspan%20class%3D%22hljs-string%22%3E'pwd'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20act_res%20%3D%20sk.recv(BUFSIZE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(act_res.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%2C%20end%3D%3Cspan%20class%3D%22hljs-string%22%3E''%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cp%3E%26nbsp%3B%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3ETCP%E5%8D%8F%E8%AE%AE%E7%9A%84%E6%8B%86%E5%8C%85%E6%9C%BA%E5%88%B6%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E1.%E5%BD%93%E5%8F%91%E9%80%81%E7%AB%AF%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E9%95%BF%E5%BA%A6%E5%A4%A7%E4%BA%8E%E7%BD%91%E5%8D%A1%E7%9A%84MTU%E6%97%B6%EF%BC%8Ctcp%E4%BC%9A%E5%B0%86%E6%AD%A4%E6%AC%A1%E5%8F%91%E9%80%81%E7%9A%84%E6%95%B0%E6%8D%AE%E6%8B%86%E5%88%86%E6%88%90%E5%87%A0%E4%B8%AA%E5%B0%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%E8%BF%9B%E8%A1%8C%E5%8F%91%E9%80%81%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E2.MTU(Maxinum%20Transmission%20Unit)%EF%BC%9A%E6%84%8F%E6%80%9D%E6%98%AF%E7%BD%91%E8%B7%AF%E4%B8%8A%E4%BC%A0%E9%80%81%E7%9A%84%E6%9C%80%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%8C%85%EF%BC%8CMTU%E7%9A%84%E5%8D%95%E4%BD%8D%E6%98%AF%E5%AD%97%E8%8A%82%EF%BC%8C%E5%A4%A7%E9%83%A8%E5%88%86%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E7%9A%84MTU%E9%83%BD%E6%98%AF1500%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%9C%AC%E6%9C%BA%E7%9A%84MTU%E6%AF%94%E7%BD%91%E5%85%B3%E7%9A%84MTU%E5%A4%A7%EF%BC%8C%E9%82%A3%E4%B9%88%E5%A4%A7%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%E5%B0%B1%E4%BC%9A%E8%A2%AB%E6%8B%86%E5%BC%80%E6%9D%A5%E4%BC%A0%E9%80%81%EF%BC%8C%E8%BF%99%E6%A0%B7%E4%BC%9A%E4%BA%A7%E7%94%9F%E5%BE%88%E5%A4%9A%E6%95%B0%E6%8D%AE%E5%8C%85%E7%A2%8E%E7%89%87%EF%BC%8C%E5%A2%9E%E5%8A%A0%E4%B8%A2%E5%8C%85%E7%95%A5%EF%BC%8C%E9%99%8D%E4%BD%8E%E7%BD%91%E7%BB%9C%E9%80%9F%E5%BA%A6%E3%80%82%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3E%E9%9D%A2%E5%90%91%E6%B5%81%E7%9A%84%E9%80%9A%E4%BF%A1%E7%89%B9%E7%82%B9%E5%92%8CNagle%E7%AE%97%E6%B3%95%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E1.TCP(Transport%20Control%20Protocol)%EF%BC%9A%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6%E5%8D%8F%E8%AE%AE%EF%BC%8C%E9%9D%A2%E5%90%91%E8%BF%9E%E6%8E%A5%E7%9A%84%EF%BC%8C%E9%9D%A2%E5%90%91%E6%B5%81%E7%9A%84%EF%BC%8C%E6%8F%90%E9%AB%98%E5%8F%AF%E9%9D%A0%E6%80%A7%E6%9C%8D%E5%8A%A1%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E2.%E6%94%B6%E5%8F%91%E4%B8%A4%E7%AB%AF%E9%83%BD%E8%A6%81%E6%9C%89%E4%B8%80%E4%B8%80%E6%88%90%E5%AF%B9%E7%9A%84socket%EF%BC%8CNagle%E7%AE%97%E6%B3%95%E5%8F%AF%E4%BB%A5%E4%BD%BF%E5%8F%91%E9%80%81%E7%AB%AF%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%E6%9B%B4%E6%9C%89%E6%95%88%E7%9A%84%E5%8F%91%E9%80%81%E5%88%B0%E6%8E%A5%E6%94%B6%E7%AB%AF%EF%BC%8C%E5%AE%83%E4%BC%9A%E5%B0%86%E8%BF%9E%E7%BB%AD%E5%8F%91%E9%80%81%E9%97%B4%E9%9A%94(%E4%B8%80%E8%88%AC%E5%9C%A8200%E6%AF%AB%E7%A7%92)%E8%BE%83%E5%B0%8F%E4%B8%94%E6%95%B0%E6%8D%AE%E8%BE%83%E5%B0%8F%E7%9A%84%E6%95%B0%E6%8D%AE%E5%90%88%E5%B9%B6%E6%88%90%E4%B8%80%E4%B8%AA%E5%A4%A7%E7%9A%84%E6%95%B0%E6%8D%AE%E5%9D%97%EF%BC%8C%E7%84%B6%E5%90%8E%E8%BF%9B%E8%A1%8C%E5%B0%81%E5%8C%85%EF%BC%8C%E4%B8%80%E6%AC%A1%E5%8F%91%E5%87%BA%E5%8E%BB%EF%BC%8C%E8%BF%99%E5%B0%B1%E5%AF%BC%E8%87%B4%E6%8E%A5%E6%94%B6%E7%AB%AF%E6%97%A0%E6%B3%95%E5%88%86%E8%BE%A8%E6%95%B0%E6%8D%AE%E5%8C%85%E4%BA%86%EF%BC%8C%E5%BF%85%E9%A1%BB%E6%8F%90%E4%BE%9B%E7%A7%91%E5%AD%A6%E7%9A%84%E6%8B%86%E5%8C%85%E6%9C%BA%E5%88%B6%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E3.%E9%9D%A2%E5%90%91%E6%B5%81%E7%9A%84%E9%80%9A%E4%BF%A1%E9%83%BD%E6%98%AF%E6%97%A0%E6%B6%88%E6%81%AF%E4%BF%9D%E6%8A%A4%E8%BE%B9%E7%95%8C%E7%9A%84%EF%BC%8C%E5%AF%B9%E4%BA%8E%E7%A9%BA%E6%B6%88%E6%81%AF%EF%BC%9Atcp%E6%98%AF%E5%9F%BA%E4%BA%8E%E6%95%B0%E6%8D%AE%E6%B5%81%E7%9A%84%EF%BC%8C%E6%89%80%E4%BB%A5%E6%94%B6%E5%8F%91%E7%9A%84%E6%B6%88%E6%81%AF%E4%B8%8D%E8%83%BD%E4%B8%BA%E7%A9%BA%EF%BC%8C%E8%BF%99%E5%B0%B1%E9%9C%80%E8%A6%81%E5%9C%A8%E9%A6%96%E5%8F%91%E4%B8%A4%E7%AB%AF%E5%81%9A%E7%A9%BA%E6%B6%88%E6%81%AF%E7%9A%84%E5%A4%84%E7%90%86%E6%9C%BA%E5%88%B6%EF%BC%8C%E9%98%B2%E6%AD%A2%E7%A8%8B%E5%BA%8F%E5%8D%A1%E4%BD%8F%EF%BC%9Budp%E6%98%AF%E5%9F%BA%E4%BA%8E%E6%95%B0%E6%8D%AE%E6%8A%A5%E7%9A%84%EF%BC%8C%E5%9B%A0%E4%B8%BAudp%E5%8D%8F%E8%AE%AE%E4%BC%9A%E5%B0%81%E8%A3%85%E4%B8%8A%E6%B6%88%E6%81%AF%E5%A4%B4%E9%83%A8%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%8C%E6%89%80%E4%BB%A5%E5%8D%B3%E4%BD%BF%E6%97%B6%E7%A9%BA%E5%AD%97%E7%AC%A6%E4%B9%9F%E4%B8%80%E6%A0%B7%E5%8F%AF%E4%BB%A5%E5%8F%91%E9%80%81%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E4.tcp%E5%8D%8F%E8%AE%AE%E7%9A%84%E6%95%B0%E6%8D%AE%E4%B8%8D%E4%BC%9A%E4%B8%A2%EF%BC%8C%E6%B2%A1%E6%9C%89%E6%94%B6%E5%AE%8C%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%B8%8B%E6%AC%A1%E6%8E%A5%E6%94%B6%EF%BC%8C%E4%BC%9A%E7%BB%A7%E7%BB%AD%E4%B8%8A%E6%AC%A1%E7%9A%84%E5%9C%B0%E6%96%B9%E6%8E%A5%E6%94%B6%EF%BC%8C%E6%8E%A5%E6%94%B6%E6%96%B9%E6%80%BB%E6%98%AF%E5%9C%A8%E6%94%B6%E5%88%B0ack%E6%97%B6%E6%89%8D%E4%BC%9A%E6%B8%85%E9%99%A4%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E5%86%85%E5%AE%B9%EF%BC%8C%E6%89%80%E4%BB%A5%E6%95%B0%E6%8D%AE%E6%98%AF%E5%8F%AF%E9%9D%A0%E7%9A%84%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BC%9A%E9%BB%8F%E5%8C%85%E3%80%82%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%9F%BA%E4%BA%8ETCP%E5%8D%8F%E8%AE%AE%E7%89%B9%E7%82%B9%E7%9A%84%E9%BB%8F%E5%8C%85%E7%8E%B0%E8%B1%A1%E6%88%90%E5%9B%A0%3C%2Fstrong%3E%3C%2Fli%3E%3C%2Ful%3E%0A%0A!%5B%E5%9C%A8%E8%BF%99%E9%87%8C%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87%E6%8F%8F%E8%BF%B0%5D(%2Fmedia%2Fai%2F2019-03%2Fbdc4dd79-ac3a-4d17-8703-8da5f74edc7b.png)%0A%0A%3Cp%3E1.%E5%8F%91%E9%80%81%E7%AB%AF%E5%8F%AF%E4%BB%A5%E6%98%AF1k1k%E7%9A%84%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%EF%BC%8C%E8%80%8C%E6%8E%A5%E6%94%B6%E7%AB%AF%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8D%B4%E5%8F%AF%E4%BB%A5%E6%98%AF%E4%B8%A4k%E4%B8%A4k%E7%9A%84%E6%8F%90%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%BD%93%E7%84%B6%E4%B9%9F%E6%9C%89%E5%8F%AF%E8%83%BD%E6%98%AF3k%E3%80%816k%E6%88%96%E8%80%85%E4%B8%80%E6%AC%A1%E5%8F%AA%E6%8F%901%E4%B8%AA%E5%AD%97%E8%8A%82%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%EF%BC%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%89%80%E7%9C%8B%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E5%85%B6%E5%AE%9E%E6%98%AF%E4%B8%80%E4%B8%AA%E6%95%B4%E4%BD%93%EF%BC%8C%E6%88%96%E8%80%85%E8%AF%B4%E6%98%AF%E4%B8%80%E4%B8%AA%E6%B5%81(stream)%EF%BC%8C%E4%B8%80%E6%9D%A1%E6%B6%88%E6%81%AF%E6%9C%89%E5%A4%9A%E5%B0%91%E5%AD%97%E8%8A%82%E5%AF%B9%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%9D%A5%E8%AF%B4%E6%98%AF%E4%B8%8D%E5%8F%AF%E8%A7%81%E7%9A%84%EF%BC%8C%E5%9B%A0%E6%AD%A4TCP%E5%8D%8F%E8%AE%AE%E6%98%AF%E9%9D%A2%E5%90%91%E6%B5%81%E7%9A%84%E5%8D%8F%E8%AE%AE%EF%BC%8C%E8%BF%99%E4%B9%9F%E6%98%AF%E5%AE%B9%E6%98%93%E5%87%BA%E7%8E%B0%E9%BB%8F%E5%8C%85%E9%97%AE%E9%A2%98%E7%9A%84%E5%8E%9F%E5%9B%A0%3C%2Fp%3E%0A%0A%3Cp%3E2.UDP%E5%8D%8F%E8%AE%AE%E6%98%AF%E9%9D%A2%E5%90%91%E6%B6%88%E6%81%AF%E7%9A%84%E5%8D%8F%E8%AE%AE%EF%BC%8C%E6%AF%8F%E4%B8%AAUDP%E6%AE%B5%E9%83%BD%E6%98%AF%E4%B8%80%E6%9D%A1%E6%B6%88%E6%81%AF%EF%BC%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%BF%85%E9%A1%BB%E4%BB%A5%E6%B6%88%E6%81%AF%E4%B8%BA%E5%8D%95%E4%BD%8D%E6%8F%90%E5%8F%96%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%B8%8D%E8%83%BD%E4%B8%80%E6%AC%A1%E6%8F%90%E5%8F%96%E4%BB%BB%E6%84%8F%E5%AD%97%E8%8A%82%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E8%BF%99%E4%B8%80%E7%82%B9%E5%92%8CTCP%E5%8D%8F%E8%AE%AE%E5%BE%88%E4%B8%8D%E5%90%8C%E7%9A%84%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E3.%E5%9F%BA%E4%BA%8ETCP%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BE%80%E6%9C%8D%E5%8A%A1%E7%AB%AF%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E6%97%B6%EF%BC%8C%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9%E6%98%AF%E4%B8%80%E6%AE%B5%E4%B8%80%E6%AE%B5%E7%9A%84%E5%AD%97%E8%8A%82%E6%B5%81%E5%8F%91%E9%80%81%E7%9A%84%EF%BC%8C%E5%9C%A8%E6%8E%A5%E6%94%B6%E6%96%B9%E7%9C%8B%E6%9D%A5%EF%BC%8C%E6%A0%B9%E6%9C%AC%E5%B0%B1%E4%B8%8D%E7%9F%A5%E9%81%93%E8%AF%A5%E5%AD%97%E8%8A%82%E6%B5%81%E6%97%B6%E4%BB%8E%E4%BD%95%E5%A4%84%E5%BC%80%E5%A7%8B%E4%BD%95%E5%A4%84%E7%BB%93%E6%9D%9F%E7%9A%84%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E4.%E5%8F%91%E9%80%81%E6%96%B9%E5%BC%95%E8%B5%B7%E7%9A%84%E9%BB%8F%E5%8C%85%E6%97%B6%E7%94%B1TCP%E5%8D%8F%E8%AE%AE%E6%9C%AC%E8%BA%AB%E9%80%A0%E6%88%90%E7%9A%84%EF%BC%8CTCP%E5%8D%8F%E8%AE%AE%E4%B8%BA%E4%BA%86%E6%8F%90%E9%AB%98%E4%BC%A0%E8%BE%93%E6%95%88%E7%8E%87%EF%BC%8C%E5%BE%80%E5%BE%80%E4%BC%9A%E5%9C%A8%E6%94%B6%E9%9B%86%E8%B6%B3%E5%A4%9F%E5%A4%9A%E7%9A%84%E6%95%B0%E6%8D%AE%E4%B9%8B%E5%90%8E%E6%89%8D%E4%BC%9A%E5%8F%91%E9%80%81%E4%B8%80%E4%B8%AATCP%E6%AE%B5%EF%BC%88%E8%BF%9E%E7%BB%AD%E5%87%A0%E6%AC%A1send%E7%9A%84%E6%95%B0%E6%8D%AE%E9%83%BD%E5%BE%88%E5%B0%91%EF%BC%8CTCP%E4%BC%9A%E6%A0%B9%E6%8D%AE%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95%E6%8A%8A%E8%BF%99%E4%BA%9B%E6%95%B0%E6%8D%AE%E5%90%88%E5%B9%B6%E6%88%90%E4%B8%80%E4%B8%AATCP%E6%AE%B5%E5%90%8E%EF%BC%8C%E4%B8%80%E6%AC%A1%E5%8F%91%E5%87%BA%E5%8E%BB%EF%BC%89%EF%BC%8C%E8%BF%99%E5%B0%B1%E5%AF%BC%E8%87%B4%E4%BA%86%E6%8E%A5%E6%94%B6%E6%96%B9%E6%94%B6%E5%88%B0%E4%BA%86%E9%BB%8F%E5%8C%85%E6%95%B0%E6%8D%AE%E3%80%82%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3EUDP%E5%8D%8F%E8%AE%AE%E4%B8%8D%E4%BC%9A%E6%9C%89%E9%BB%8F%E5%8C%85%E7%8E%B0%E8%B1%A1%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E1.UDP(User%20Datagram%20Protocol)%EF%BC%9A%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8D%8F%E8%AE%AE%EF%BC%8C%E6%98%AF%E6%97%A0%E8%BF%9E%E6%8E%A5%E7%9A%84%EF%BC%8C%E9%9D%A2%E5%90%91%E6%B6%88%E6%81%AF%E7%9A%84%EF%BC%8C%E6%8F%90%E4%BE%9B%E9%AB%98%E6%95%88%E7%8E%87%E7%9A%84%E6%9C%8D%E5%8A%A1%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E2.%E4%B8%8D%E4%BC%9A%E4%BD%BF%E7%94%A8%E5%90%88%E5%B9%B6%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95(Nagle)%EF%BC%8CUDP%E6%94%AF%E6%8C%81%E4%B8%80%E5%AF%B9%E5%A4%9A%E7%9A%84%E6%A8%A1%E5%BC%8F%EF%BC%8C%E6%8E%A5%E6%94%B6%E7%AB%AF%E7%9A%84skbuff(%E5%A5%97%E6%8E%A5%E5%AD%97%E7%BC%93%E5%86%B2%E5%8C%BA)%E9%87%87%E7%94%A8%E4%BA%86%E9%93%BE%E5%BC%8F%E7%BB%93%E6%9E%84%E6%9D%A5%E8%AE%B0%E5%BD%95%E6%AF%8F%E4%B8%80%E4%B8%AA%E5%88%B0%E8%BE%BE%E7%9A%84UDP%E5%8C%85%EF%BC%8C%E5%88%86%E4%B8%BA%E5%8C%85%E5%A4%B4%E5%92%8C%E6%95%B0%E6%8D%AE%E4%B8%A4%E9%83%A8%E5%88%86%E3%80%82%E8%BF%99%E6%A0%B7%EF%BC%8C%E5%AF%B9%E4%BA%8E%E6%8E%A5%E6%94%B6%E7%AB%AF%E6%9D%A5%E8%AF%B4%EF%BC%8C%E5%BE%88%E5%AE%B9%E6%98%93%E8%BF%9B%E8%A1%8C%E5%8C%BA%E5%88%86%E5%A4%84%E7%90%86%EF%BC%8C%E5%8D%B3%E9%9D%A2%E5%90%91%E6%B6%88%E6%81%AF%E7%9A%84%E9%80%9A%E4%BF%A1%E6%98%AF%E6%9C%89%E6%B6%88%E6%81%AF%E4%BF%9D%E6%8A%A4%E8%BE%B9%E7%95%8C%E7%9A%84%E3%80%82%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3E3.%E4%B8%8D%E5%8F%AF%E9%9D%A0%E4%B8%8D%E9%BB%8F%E5%8C%85%E7%9A%84UDP%E5%8D%8F%E8%AE%AE%EF%BC%9AUDP%E7%9A%84recvfrom%E6%97%B6%E9%98%BB%E5%A1%9E%E7%9A%84%EF%BC%8C%E4%B8%80%E4%B8%AArecvfrom(x)%E5%BF%85%E9%A1%BB%E5%AF%B9%E5%BA%94%E5%94%AF%E4%B8%80%E4%B8%80%E4%B8%AAsendinto(y)%EF%BC%8C%E6%94%B6%E5%AE%8C%E4%BA%86x%E4%B8%AA%E5%AD%97%E8%8A%82%E7%9A%84%E6%95%B0%E6%8D%AE%E5%B0%B1%E7%AE%97%E5%AE%8C%E6%88%90%EF%BC%8C%E8%8B%A5%E6%98%AFy%26lt%3Bx%E6%95%B0%E6%8D%AE%E5%B0%B1%E4%BC%9A%E4%B8%A2%E5%A4%B1%E5%90%8E%E5%B9%B4%E7%9A%84%E9%83%A8%E5%88%86%EF%BC%8C%E6%89%80%E4%BB%A5UDP%E6%A0%B9%E6%9C%AC%E4%B8%8D%E4%BC%9A%E9%BB%8F%E5%8C%85%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BC%9A%E6%9C%89%E4%B8%A2%E6%95%B0%E6%8D%AE%E7%9A%84%E6%83%85%E5%86%B5%EF%BC%8C%E4%B8%8D%E5%8F%AF%E9%9D%A0%E3%80%82%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3E4.%E7%94%A8UDP%E5%8D%8F%E8%AE%AE%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E6%97%B6%EF%BC%8Csendto%E5%87%BD%E6%95%B0%E6%9C%80%E5%A4%A7%E8%83%BD%E5%8F%91%E9%80%81%E7%9A%84%E6%95%B0%E6%8D%AE%E9%95%BF%E5%BA%A6%E4%B8%BA%EF%BC%9A65535%20-%20IP%E5%A4%B4(20)%20-%20UDP%E5%A4%B4%20%3D%2065507%E5%AD%97%E8%8A%82%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%8C%87%E5%AE%9A%E7%9A%84%E6%95%B0%E6%8D%AE%E9%95%BF%E5%BA%A6%E5%A4%A7%E4%BA%8E%E8%AF%A5%E5%80%BC%EF%BC%8C%E5%88%99%E5%87%BD%E6%95%B0%E4%BC%9A%E8%BF%94%E5%9B%9E%E9%94%99%E8%AF%AF%E5%B9%B6%E4%B8%A2%E5%BC%83%E8%BF%99%E4%B8%AA%E5%8C%85%EF%BC%8C%E4%B8%8D%E4%BC%9A%E5%8F%91%E9%80%81%E3%80%82%E5%86%8D%E8%81%94%E7%B3%BB%E5%88%B0%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82%EF%BC%8C%E5%9B%A0%E4%B8%BA%E7%BD%91%E5%8D%A1%E7%9A%84MTU%E4%B8%80%E8%88%AC%E8%A2%AB%E9%99%90%E5%88%B6%E5%9C%A8%E4%BA%861500%E5%AD%97%E8%8A%82%EF%BC%8C%E6%89%80%E4%BB%A5%E5%AF%B9%E4%BA%8E%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82%E6%9D%A5%E8%AF%B4%EF%BC%8C%E4%B8%80%E6%AC%A1%E6%94%B6%E5%8F%91%E7%9A%84%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%E8%A2%AB%E9%99%90%E5%88%B6%E5%9C%A81500%20-IP%E5%8C%85%E5%A4%B4(20)%20-%20UDP%E5%8C%85%E5%A4%B4(8)%20%3D%201472%E5%AD%97%E8%8A%82%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%95%B0%E6%8D%AE%E7%9A%84%E9%95%BF%E5%BA%A6%E8%B6%85%E8%BF%87%E8%BF%99%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%8C%E5%B0%B1%E4%BC%9A%E8%A2%AB%E6%8B%86%E5%88%86%EF%BC%8C%E5%AF%BC%E8%87%B4%E4%B8%A2%E5%8C%85%E7%8E%87%E5%A2%9E%E5%8A%A0%EF%BC%8C%E6%89%80%E4%BB%A5%E6%AF%94%E8%BE%83%E7%90%86%E6%83%B3%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%BA%94%E8%AF%A5%E5%9C%A81472%E5%AD%97%E8%8A%82%E4%B8%80%E4%B8%8B%E3%80%82%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3E5.%E7%94%A8TCP%E5%8D%8F%E8%AE%AE%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%E6%97%B6%EF%BC%8Csend%E5%87%BD%E6%95%B0%E4%B8%8D%E4%BC%9A%E9%99%90%E5%88%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E9%95%BF%E5%BA%A6%EF%BC%8C%E5%9B%A0%E4%B8%BATCP%E5%8D%8F%E8%AE%AE%E6%98%AF%E5%9F%BA%E4%BA%8E%E6%95%B0%E6%8D%AE%E6%B5%81%E7%9A%84%EF%BC%8C%E4%B8%8D%E5%AD%98%E5%9C%A8%E5%8C%85%E5%A4%A7%E5%B0%8F%E7%9A%84%E9%99%90%E5%88%B6%EF%BC%88%E6%9A%82%E4%B8%8D%E8%80%83%E8%99%91%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E5%A4%A7%E5%B0%8F%EF%BC%89%EF%BC%8C%E8%80%8C%E5%AE%9E%E9%99%85%E4%B8%8A%EF%BC%8C%E6%89%80%E6%8C%87%E5%AE%9A%E7%9A%84%E8%BF%99%E6%AE%B5%E6%95%B0%E6%8D%AE%E5%B9%B6%E4%B8%8D%E4%B8%80%E5%AE%9A%E4%BC%9A%E4%B8%80%E6%AC%A1%E6%80%A7%E5%8F%91%E9%80%81%E5%87%BA%E5%8E%BB%EF%BC%8C%E6%95%B0%E6%8D%AE%E6%AF%94%E8%BE%83%E9%95%BF%E6%97%B6%E4%BC%9A%E8%A2%AB%E5%88%86%E6%AE%B5%E5%8F%91%E5%87%BA%E5%8E%BB%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%AF%94%E8%BE%83%E7%9F%AD%EF%BC%8C%E5%8F%AF%E8%83%BD%E4%BC%9A%E7%AD%89%E5%BE%85%E5%92%8C%E4%B8%8B%E4%B8%80%E6%AC%A1send%E7%9A%84%E6%95%B0%E6%8D%AE%E4%B8%80%E8%B5%B7%E5%8F%91%E9%80%81%E3%80%82%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%AF%BC%E8%87%B4%E9%BB%8F%E5%8C%85%E7%9A%84%E4%B8%A4%E7%A7%8D%E6%83%85%E5%86%B5%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%3Cstrong%3E%E6%83%85%E5%86%B5%E4%B8%80%EF%BC%9A%E5%8F%91%E9%80%81%E6%96%B9%E7%9A%84%E7%BC%93%E5%AD%98%E6%9C%BA%E5%88%B6%3C%2Fstrong%3E%3Cbr%3E%0A%E5%8F%91%E9%80%81%E7%AB%AF%E5%A4%9A%E6%AC%A1%E8%BF%9E%E7%BB%AD%E5%8F%91%E9%80%81%E9%97%B4%E9%9A%94%E8%BE%83%E5%B0%8F%EF%BC%8C%E4%B8%94%E6%95%B0%E6%8D%AE%E8%BE%83%E5%B0%8F%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E5%8F%AF%E8%83%BD%E4%BC%9A%E8%A2%ABNagle%E7%AE%97%E6%B3%95%E5%90%88%E5%B9%B6%E6%88%90%E4%B8%80%E4%B8%AA%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8F%91%E5%87%BA%E5%8E%BB.%3C%2Fp%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1025%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3EBUFSIZE%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2CSOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen(%3Cspan%20class%3D%22hljs-number%22%3E5%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn%2C%20addr%20%3D%20sk.accept()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Edata1%20%3D%20conn.recv(BUFSIZE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Edata2%20%3D%20conn.recv(BUFSIZE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(%3Cspan%20class%3D%22hljs-string%22%3E'--%26gt%3B'%3C%2Fspan%3E%2C%20data1.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(%3Cspan%20class%3D%22hljs-string%22%3E'--%26gt%3B'%3C%2Fspan%3E%2C%20data2.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1025%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3EBUFSIZE%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E1472%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2CSOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eres%20%3D%20sk.connect_ex(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.send(%3Cspan%20class%3D%22hljs-string%22%3E'hi!%20'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.send(%3Cspan%20class%3D%22hljs-string%22%3E'Everybody%20is%20good!'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cp%3E%3Cstrong%3E%E6%83%85%E5%86%B5%E4%BA%8C%EF%BC%9A%E6%8E%A5%E6%94%B6%E6%96%B9%E7%9A%84%E7%BC%93%E5%AD%98%E6%9C%BA%E5%88%B6%3C%2Fstrong%3E%3Cbr%3E%0A%E6%8E%A5%E6%94%B6%E6%96%B9%E4%B8%8D%E5%8F%8A%E6%97%B6%E6%8E%A5%E6%94%B6%E7%BC%93%E5%AD%98%E5%8C%BA%E7%9A%84%E5%8C%85%EF%BC%8C%E9%80%A0%E6%88%90%E5%A4%9A%E4%B8%AA%E5%8C%85%E5%AD%98%E5%9C%A8%E7%BC%93%E5%AD%98%E5%8C%BA%E4%B8%AD%EF%BC%88%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81%E4%BA%86%E4%B8%80%E6%AE%B5%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%AA%E6%8E%A5%E6%94%B6%E4%BA%86%E4%B8%80%E5%B0%8F%E9%83%A8%E5%88%86%EF%BC%8C%E6%9C%8D%E5%8A%A1%E7%AB%AF%E4%B8%8B%E6%AC%A1%E5%86%8D%E6%94%B6%E7%9A%84%E6%97%B6%E5%80%99%E8%BF%98%E6%98%AF%E4%BB%8E%E7%BC%93%E5%86%B2%E5%8C%BA%E6%8B%BF%E4%B8%8A%E6%AC%A1%E9%81%97%E7%95%99%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%AF%BC%E8%87%B4%E4%BA%A7%E7%A8%8B%E9%BB%8F%E5%8C%85%EF%BC%89%3C%2Fp%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1025%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3EBUFSIZE%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E22%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2C%20SOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen(%3Cspan%20class%3D%22hljs-number%22%3E5%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn%2C%20addr%20%3D%20sk.accept()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Edata1%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E2%3C%2Fspan%3E)%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E4%B8%80%E6%AC%A1%E6%B2%A1%E6%9C%89%E6%8E%A5%E6%94%B6%E5%AE%8C%E6%95%B4%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Edata2%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E10%3C%2Fspan%3E)%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E4%BA%8C%E6%AC%A1%E6%8E%A5%E6%94%B6%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E6%8E%A5%E7%9D%80%E4%B8%80%E6%AC%A1%E7%9A%84%E6%95%B0%E6%8D%AE%E6%8E%A5%E6%94%B6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(%3Cspan%20class%3D%22hljs-string%22%3E'--%26gt%3B'%3C%2Fspan%3E%2C%20data1.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eprint(%3Cspan%20class%3D%22hljs-string%22%3E'--%26gt%3B'%3C%2Fspan%3E%2C%20data2.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Econn.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1025%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3EBUFSIZE%20%3D%20%3Cspan%20class%3D%22hljs-number%22%3E1472%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2CSOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eres%20%3D%20sk.connect_ex(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.send(%3Cspan%20class%3D%22hljs-string%22%3E'hei%20hei%20hei'%3C%2Fspan%3E.encode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%B0%8F%E7%BB%93%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%3Cstrong%3E%E9%BB%8F%E5%8C%85%E7%8E%B0%E8%B1%A1%E5%8F%AA%E4%BC%9A%E5%8F%91%E7%94%9F%E5%9C%A8TCP%E5%8D%8F%E8%AE%AE%E4%B8%AD%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%EF%BC%8C%E4%BB%8E%E8%A1%A8%E9%9D%A2%E4%B8%8A%E7%9C%8B%EF%BC%8C%E9%BB%8F%E5%8C%85%E9%97%AE%E9%A2%98%E4%B8%BB%E8%A6%81%E6%98%AF%E5%9B%A0%E4%B8%BA%E5%8F%91%E9%80%81%E6%96%B9%E5%92%8C%E6%8E%A5%E6%94%B6%E6%96%B9%E7%9A%84%E7%BC%93%E5%AD%98%E6%9C%BA%E5%88%B6%E3%80%81TCP%E5%8D%8F%E8%AE%AE%E9%9D%A2%E5%90%91%E5%AD%97%E8%8A%82%E6%B5%81%E9%80%9A%E4%BF%A1%E7%9A%84%E7%89%B9%E7%82%B9%EF%BC%8C%E5%AE%9E%E9%99%85%E4%B8%8A%E8%BF%98%E6%98%AF%E5%9B%A0%E4%B8%BA%E6%8E%A5%E6%94%B6%E6%96%B9%E4%B8%8D%E7%9F%A5%E9%81%93%E6%B6%88%E6%81%AF%E7%9A%84%E8%BE%B9%E7%95%8C%EF%BC%8C%E4%B8%8D%E7%9F%A5%E9%81%93%E4%B8%80%E6%AC%A1%E8%A6%81%E6%8F%90%E5%8F%96%E5%A4%9A%E5%B0%91%E5%AD%97%E8%8A%82%E7%9A%84%E6%95%B0%E6%8D%AE%E6%89%80%E9%80%A0%E6%88%90%E7%9A%84%E3%80%82%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Chr%3E%3Chr%3E%3Ch3%20id%3D%228.%25E8%25A7%25A3%25E5%2586%25B3%25E9%25BB%258F%25E5%258C%2585%22%3E%3Ca%20name%3D%22t7%22%3E%3C%2Fa%3E8.%E8%A7%A3%E5%86%B3%E9%BB%8F%E5%8C%85%3C%2Fh3%3E%0A%0A%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%9F%BA%E6%9C%AC%E6%80%9D%E8%B7%AF%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%E8%AE%A9%E5%8F%91%E9%80%81%E7%AB%AF%E5%9C%A8%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E4%B9%8B%E5%89%8D%EF%BC%8C%E6%8A%8A%E8%87%AA%E5%B7%B1%E8%A6%81%E5%8F%91%E9%80%81%E7%9A%84%E5%AD%97%E8%8A%82%E6%B5%81%E6%80%BB%E5%A4%A7%E5%B0%8F%E8%AE%A9%E6%8E%A5%E6%94%B6%E7%AB%AF%E7%9F%A5%E6%99%93%EF%BC%8C%E7%84%B6%E5%90%8E%E6%8E%A5%E6%94%B6%E7%AB%AF%E5%BC%80%E5%A7%8B%E4%B8%80%E4%B8%AA%E5%BE%AA%E7%8E%AF%EF%BC%8C%E6%9D%A5%E6%8E%A5%E6%94%B6%E6%89%80%E6%9C%89%E6%95%B0%E6%8D%AE%3C%2Fp%3E%0A%0A!%5B%E5%9C%A8%E8%BF%99%E9%87%8C%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87%E6%8F%8F%E8%BF%B0%5D(%2Fmedia%2Fai%2F2019-03%2Fbddf0396-479b-48fb-b41a-b9ce8a1ef59f.png)%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20subprocess%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eencodin%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1025%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2C%20SOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen(%3Cspan%20class%3D%22hljs-number%22%3E5%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-keyword%22%3ETrue%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn%2C%20addr%20%3D%20sk.accept()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%9A%22%3C%2Fspan%3E%2Caddr)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20cmd%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E1472%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-keyword%22%3Enot%3C%2Fspan%3E%20cmd%3A%3Cspan%20class%3D%22hljs-keyword%22%3Ebreak%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20res%20%3D%20subprocess.Popen(cmd.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20shell%3D%3Cspan%20class%3D%22hljs-keyword%22%3ETrue%3C%2Fspan%3E%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20stdout%3Dsubprocess.PIPE%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20stderr%3Dsubprocess.PIPE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20out%20%3D%20res.stdout.read()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20out%3Aret%20%3D%20out%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eelse%3C%2Fspan%3E%3Aret%20%3D%20res.stderr.read()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2230%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20data_length%20%3D%20str(len(ret))%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%A1%AE%E5%AE%9A%E9%95%BF%E5%BA%A6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2231%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20conn.send(data_length.encode(encodin))%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E9%80%9A%E7%9F%A5%E5%AF%B9%E6%96%B9%E6%8E%A5%E6%94%B6%E9%95%BF%E5%BA%A6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2232%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20data%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E).decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2233%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2234%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20data%20%3D%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'recv_ready'%3C%2Fspan%3E%3Aconn.sendall(ret)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2235%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2236%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2237%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2238%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2239%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2240%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2241%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efrom%3C%2Fspan%3E%20socket%20%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20*%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20time%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eencodin%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1025%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket(AF_INET%2C%20SOCK_STREAM)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.connect_ex(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Etry%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20cmd%20%3D%20input(%3Cspan%20class%3D%22hljs-string%22%3E'%26gt%3B%26gt%3B%26gt%3B'%3C%2Fspan%3E.strip())%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20len(cmd)%20%3D%3D%20%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%3A%3Cspan%20class%3D%22hljs-keyword%22%3Econtinue%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20sk.send(cmd.encode(encodin))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20length%20%3D%20int(sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E1024%3C%2Fspan%3E).decode(encodin))%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6%E5%AD%97%E8%8A%82%E9%95%BF%E5%BA%A6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20sk.send(%3Cspan%20class%3D%22hljs-string%22%3E'recv_ready'%3C%2Fspan%3E.encode(encodin))%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%BF%94%E5%9B%9E%E7%A1%AE%E8%AE%A4%E6%B6%88%E6%81%AF%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20data%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3Eb''%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20length%20%26gt%3B%20len(data)%3Adata%20%2B%3D%20sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(data.decode(%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efinally%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cp%3E%3Cstrong%3E%E5%AD%98%E5%9C%A8%E9%97%AE%E9%A2%98%EF%BC%9A%3C%2Fstrong%3E%3Cbr%3E%0A%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%BF%90%E8%A1%8C%E9%80%9F%E5%BA%A6%E8%BF%9C%E8%BF%9C%E5%BF%AB%E4%BA%8E%E7%BD%91%E7%BB%9C%E7%9A%84%E4%BC%A0%E8%BE%93%E9%80%9F%E5%BA%A6%EF%BC%8C%E6%89%80%E4%BB%A5%E5%9C%A8%E5%8F%91%E9%80%81%E4%B8%80%E6%AE%B5%E6%95%B0%E6%8D%AE%E4%B9%8B%E5%89%8D%E7%94%A8send%E5%8E%BB%E5%91%8A%E7%9F%A5%E8%AF%A5%E5%AD%97%E8%8A%82%E9%95%BF%E5%BA%A6%E7%9A%84%E6%96%B9%E5%BC%8F%E4%BC%9A%E6%94%BE%E5%A4%A7%E7%BD%91%E7%BB%9C%E5%BB%B6%E8%BF%9F%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%80%A7%E8%83%BD%E6%8D%9F%E8%80%97%3C%2Fp%3E%0A%0A%3Chr%3E%3Cul%3E%3Cli%3E%3Cstrong%3E%E8%BF%9B%E9%98%B6%E6%80%9D%E8%B7%AF%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%E5%80%9F%E5%8A%A9struct%E6%A8%A1%E5%9D%97%EF%BC%8C%E6%AD%A4%E6%A8%A1%E5%9D%97%E5%8F%AF%E4%BB%A5%E6%8A%8A%E8%A6%81%E4%BC%A0%E9%80%81%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9A%84%E9%95%BF%E5%BA%A6%E8%BD%AC%E6%8D%A2%E6%88%90%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E7%9A%84%E5%AD%97%E8%8A%82%EF%BC%8C%E8%BF%99%E6%A0%B7%E6%8E%A5%E6%94%B6%E7%AB%AF%E5%9C%A8%E6%AF%8F%E6%AC%A1%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E4%B9%8B%E5%89%8D%E5%8F%AA%E9%9C%80%E8%A6%81%E5%85%88%E6%8E%A5%E6%94%B6%E8%BF%99%E4%B8%AA%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E7%9A%84%E5%AD%97%E8%8A%82%E7%9C%8B%E4%B8%80%E4%B8%8B%EF%BC%8C%E5%B0%B1%E7%9F%A5%E9%81%93%E5%90%8E%E9%9D%A2%E5%8F%91%E9%80%81%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9A%84%E9%95%BF%E5%BA%A6%E4%BA%86%EF%BC%8C%E7%84%B6%E5%90%8E%E5%BC%80%E5%A7%8B%E6%8E%A5%E6%94%B6%EF%BC%8C%E5%8F%AA%E8%A6%81%E5%88%B0%E8%BE%BE%E8%BF%99%E4%B8%AA%E9%95%BF%E5%BA%A6%E5%B0%B1%E5%81%9C%E6%AD%A2%E6%8E%A5%E6%94%B6%EF%BC%8C%E8%BF%99%E6%A0%B7%E5%B0%B1%E8%83%BD%E5%88%9A%E5%88%9A%E5%A5%BD%E7%9A%84%E6%8E%A5%E6%94%B6%E5%AE%8C%E6%95%B4%E7%9A%84%E6%95%B0%E6%8D%AE.%3C%2Fp%3E%0A%0A%3Cp%3E%3Cstrong%3Estruct%E6%A8%A1%E5%9D%97%3C%2Fstrong%3E%3Cbr%3E%0A%E5%B0%86%E4%B8%80%E4%B8%AA%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E6%88%90%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E7%9A%84bytes%EF%BC%8C%E6%AF%94%E5%A6%82int%E7%B1%BB%E5%9E%8B%EF%BC%88int%E7%B1%BB%E5%9E%8B%E5%8F%AF%E8%BD%AC%E6%8D%A2%E7%9A%84%E8%8C%83%E5%9B%B4%EF%BC%9A-2147483648%20%26lt%3B%20num%20%26lt%3B%202147483647%EF%BC%89%3Cbr%3E%0A%E6%95%B0%E6%8D%AE%E5%88%86%E4%B8%BA%E6%9C%89%E7%AC%A6%E5%8F%B7%E5%92%8C%E6%97%A0%E7%AC%A6%E5%8F%B7%EF%BC%8Cunsingend%E4%BB%A3%E8%A1%A8%E6%97%A0%E7%AC%A6%E5%8F%B7.%3Cbr%3E%0A%E6%9C%89%E7%AC%A6%E5%8F%B7%E8%A1%A8%E7%A4%BA%E7%9A%84%E6%98%AF1%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%8C8%E4%BD%8D%EF%BC%8C%E6%9C%80%E9%AB%98%E4%BD%8D%E6%98%AF%E7%AC%A6%E5%8F%B7%E4%BD%8D%EF%BC%8C%E4%B8%80%E4%B8%AA%E5%AD%97%E8%8A%82%E8%A1%A8%E7%A4%BA%E7%9A%84%E8%8C%83%E5%9B%B4%EF%BC%9A-128%EF%BD%9E127%3Cbr%3E%0A%E6%97%A0%E7%AC%A6%E5%8F%B7%E8%A1%A8%E7%A4%BA%E7%9A%84%E6%98%AF1%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%8C8%E4%BD%8D%EF%BC%8C%E6%89%80%E6%9C%89%E4%BD%8D%E9%83%BD%E6%98%AF%E6%95%B0%E5%80%BC%EF%BC%8C%E4%B8%80%E4%B8%AA%E5%AD%97%E8%8A%82%E8%A1%A8%E7%A4%BA%E7%9A%84%E8%8C%83%E5%9B%B4%EF%BC%9A0%EF%BD%9E255%3Cbr%3E%0Afloat%E8%A1%A8%E7%A4%BA%E5%8D%95%E7%B2%BE%E5%BA%A6%EF%BC%8C%E5%A4%A7%E9%83%A8%E5%88%86%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%B0%86%E5%8D%95%E7%B2%BE%E5%BA%A6%E7%B2%BE%E7%A1%AE%E5%88%B0%E5%B0%8F%E6%95%B0%E7%82%B9%E5%90%8E7%EF%BD%9E8%E4%BD%8D%3Cbr%3E%0Adouble%E8%A1%A8%E7%A4%BA%E5%8F%8C%E7%B2%BE%E5%BA%A6%EF%BC%8C%E5%A4%A7%E9%83%A8%E5%88%86%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%B0%86%E5%8F%8C%E7%B2%BE%E5%BA%A6%E7%B2%BE%E7%A1%AE%E5%88%B0%E5%B0%8F%E6%95%B0%E7%82%B9%E5%90%8E15%EF%BD%9E16%E4%BD%8D%3Cbr%3E%0Avoid%E6%8C%87%E7%9A%84%E6%98%AF%E6%97%A0%E8%BF%94%E5%9B%9E%E5%80%BC%E7%B1%BB%E5%9E%8B%EF%BC%8C%E5%86%8Dpython%E4%B8%AD%E6%B2%A1%E6%9C%89%E8%BF%99%E7%A7%8D%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%3Cbr%3E%0A*%20%E8%A1%A8%E7%A4%BA%E7%9A%84%E6%98%AF%E4%B8%80%E7%BA%A7%E6%8C%87%E9%92%88%3C%2Fp%3E%0A%0A!%5B%E5%9C%A8%E8%BF%99%E9%87%8C%E6%8F%92%E5%85%A5%E5%9B%BE%E7%89%87%E6%8F%8F%E8%BF%B0%5D(%2Fmedia%2Fai%2F2019-03%2F88665f65-f4b1-494c-b43e-b01824df33ec.png)%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Server%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20struct%2C%20socket%2C%20subprocess%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1031%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eencod%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket.socket()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.bind(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.listen(%3Cspan%20class%3D%22hljs-number%22%3E5%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Etry%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20conn%2C%20addr%20%3D%20sk.accept()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(%3Cspan%20class%3D%22hljs-string%22%3E%22%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%9A%22%3C%2Fspan%3E%2C%20addr)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20cmd%20%3D%20conn.recv(%3Cspan%20class%3D%22hljs-number%22%3E1472%3C%2Fspan%3E).decode(encod)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20res%20%3D%20subprocess.Popen(cmd%2C%20shell%3D%3Cspan%20class%3D%22hljs-keyword%22%3ETrue%3C%2Fspan%3E%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20stdout%3Dsubprocess.PIPE%2C%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20stderr%3Dsubprocess.PIPE)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20out%20%3D%20res.stdout.read()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20out%3Aret%20%3D%20out%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eelse%3C%2Fspan%3E%3Aret%20%3D%20res.stderr.read()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20length_bytes%20%3D%20struct.pack(%3Cspan%20class%3D%22hljs-string%22%3E'i'%3C%2Fspan%3E%2C%20len(ret))%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%B0%86%E6%95%B0%E6%8D%AE%E9%95%BF%E5%BA%A6%E8%BD%AC%E6%8D%A2%E6%88%90%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E7%9A%84bytes%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%20%20%20%20conn.sendall(length_bytes%20%2B%20ret)%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E4%B8%80%E6%AC%A1%E6%80%A7%E5%8F%91%E9%80%81%E5%AD%97%E8%8A%82%E9%95%BF%E5%BA%A6%E5%92%8C%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2230%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2231%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efinally%3C%2Fspan%3E%3A%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%BF%99%E5%8F%A5%E7%9A%84%E6%84%8F%E6%80%9D%E6%98%AF%3Ca%20href%3D%22https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%25E6%2597%25A0%25E8%25AE%25BA%25E5%25A6%2582%25E4%25BD%2595%26amp%3Btn%3D24004469_oem_dg%26amp%3Brsv_dl%3Dgh_pl_sl_csd%22%20target%3D%22_blank%22%3E%E6%97%A0%E8%AE%BA%E5%A6%82%E4%BD%95%3C%2Fa%3E%E9%83%BD%E8%A6%81%E6%89%A7%E8%A1%8C%E4%B8%8B%E9%9D%A2%E7%9A%84%E8%AF%AD%E5%8F%A5%EF%BC%8C%E5%8D%B3%E4%BD%BF%E6%98%AF%E7%A8%8B%E5%BA%8F%E5%B4%A9%E6%BA%83%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2232%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20conn.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2233%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20Client%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20struct%2C%20socket%2C%20subprocess%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eip_port%20%3D%20(%3Cspan%20class%3D%22hljs-string%22%3E'127.0.0.1'%3C%2Fspan%3E%2C%20%3Cspan%20class%3D%22hljs-number%22%3E1031%3C%2Fspan%3E)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Eencod%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3E'utf-8'%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk%20%3D%20socket.socket()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Esk.connect_ex(ip_port)%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Etry%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20cmd%20%3D%20input(%3Cspan%20class%3D%22hljs-string%22%3E'%26gt%3B%26gt%3B%26gt%3B'%3C%2Fspan%3E).strip()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Eif%3C%2Fspan%3E%20len(cmd)%20%3D%3D%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%3A%3Cspan%20class%3D%22hljs-keyword%22%3Econtinue%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20sk.send(cmd.encode(encod))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20length_bytes%20%3D%20sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E4%3C%2Fspan%3E)%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%88%E7%A1%AE%E5%AE%9A%E9%95%BF%E5%BA%A6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20length%20%3D%20struct.unpack(%3Cspan%20class%3D%22hljs-string%22%3E'i'%3C%2Fspan%3E%2C%20length_bytes)%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8F%90%E5%8F%96%E7%9A%84%E9%95%BF%E5%BA%A6%E6%98%AF%E4%B8%80%E4%B8%AA%E5%85%83%E7%BB%84(4%2C)%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20data%20%3D%20%3Cspan%20class%3D%22hljs-string%22%3Eb''%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-keyword%22%3Ewhile%3C%2Fspan%3E%20len(data)%20%26lt%3B%20length%5B%3Cspan%20class%3D%22hljs-number%22%3E0%3C%2Fspan%3E%5D%3Adata%20%2B%3D%20sk.recv(%3Cspan%20class%3D%22hljs-number%22%3E1%3C%2Fspan%3E)%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%86%8D%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20%20%20%20%20print(data.decode(encod))%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Efinally%3C%2Fspan%3E%3A%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%20%20%20sk.close()%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cdiv%20class%3D%22table-box%22%3E%3Ctable%20border%3D%221%22%20cellpadding%3D%221%22%20cellspacing%3D%221%22%3E%3Ctbody%3E%3Ctr%3E%3Ctd%3E%E5%8F%91%E9%80%81%E6%96%B9%3C%2Ftd%3E%0A%09%09%09%3Ctd%3E%E6%8E%A5%E6%94%B6%E6%96%B9%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%3Ctr%3E%3Ctd%3E%E5%8F%91%E9%80%81%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E7%9A%84bytes%20%2B%20%E6%95%B0%E6%8D%AE%3C%2Ftd%3E%0A%09%09%09%3Ctd%3E%0A%09%09%09%3Cp%3E%E5%85%88%E6%8E%A5%E6%94%B6bytes%EF%BC%8C%E4%BB%A5%E7%A1%AE%E5%AE%9A%E6%95%B0%E6%8D%AE%E7%9A%84%E9%95%BF%E5%BA%A6%3C%2Fp%3E%0A%0A%09%09%09%3Cp%3E%E5%86%8D%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%3C%2Fp%3E%0A%09%09%09%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%3C%2Ftbody%3E%3C%2Ftable%3E%3C%2Fdiv%3E%3Cp%3E%3Cstrong%3E%E4%BD%BF%E7%94%A8struct%E6%A8%A1%E5%9D%97%EF%BC%8C%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E6%8A%8A%E8%A6%81%E5%8F%91%E9%80%81%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9A%84%E9%95%BF%E5%BA%A6%E8%BD%AC%E6%8D%A2%E6%88%90%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E7%9A%84bytes%EF%BC%8C%E7%84%B6%E5%90%8E%E6%8A%8A%E8%BF%99%E4%B8%AAbytes%E5%8A%A0%E5%9C%A8%E6%95%B0%E6%8D%AE%E7%9A%84%E5%BC%80%E5%A4%B4%E4%B8%80%E5%9D%97%E5%8F%91%E9%80%81%E7%BB%99%E5%AE%A2%E6%88%B7%E7%AB%AF%E3%80%82%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%85%88%E6%8E%A5%E6%94%B6%E5%9B%BA%E5%AE%9A%E9%95%BF%E5%BA%A6%E7%9A%84bytes%E4%BB%A5%E7%A1%AE%E8%AE%A4%E5%90%8E%E9%9D%A2%E7%9A%84%E6%95%B0%E6%8D%AE%E6%9C%89%E5%A4%9A%E9%95%BF%EF%BC%8C%E7%84%B6%E5%90%8E%E5%BC%80%E5%A7%8B%E4%B8%80%E4%B8%AA%E5%BE%AA%E7%8E%AF%EF%BC%8C%E4%BE%BF%E5%8F%AF%E5%88%9A%E5%88%9A%E5%A5%BD%E7%9A%84%E6%8E%A5%E6%94%B6%E5%AE%8C%E6%95%B4%E7%9A%84%E6%95%B0%E6%8D%AE%E3%80%82%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Chr%3E%3Chr%3E%3Ch3%20id%3D%228.socket%25E7%259A%2584%25E6%259B%25B4%25E5%25A4%259A%25E6%2596%25B9%25E6%25B3%2595%22%3E%3Ca%20name%3D%22t8%22%3E%3C%2Fa%3E8.socket%E7%9A%84%E6%9B%B4%E5%A4%9A%E6%96%B9%E6%B3%95%3C%2Fh3%3E%0A%0A%3Cul%3E%3Cli%3E%3Cstrong%3E%E5%85%B3%E4%BA%8Esend()%20%E5%92%8C%20sendall()%3C%2Fstrong%3E%3C%2Fli%3E%0A%3C%2Ful%3E%3Cp%3E%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E5%AF%B9socket%E6%A8%A1%E5%9D%97%E4%B8%8B%E7%9A%84socke.send()%E5%92%8Csocket.sendall()%E8%A7%A3%E9%87%8A%E5%A6%82%E4%B8%8B%EF%BC%9A%3C%2Fp%3E%0A%0A%3Cdiv%20class%3D%22table-box%22%3E%3Ctable%20border%3D%221%22%20cellpadding%3D%221%22%20cellspacing%3D%221%22%3E%3Ctbody%3E%3Ctr%3E%3Ctd%3Esend()%3C%2Ftd%3E%0A%09%09%09%3Ctd%3Esendall()%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%3Ctr%3E%3Ctd%3E%E8%BF%94%E5%9B%9E%E7%9A%84%E5%80%BC%E6%98%AF%E8%A6%81%E5%8F%91%E9%80%81%E7%9A%84%E5%AD%97%E8%8A%82%E6%95%B0%E9%87%8F%EF%BC%8C%E8%BF%99%E4%B8%AA%E5%80%BC%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%B0%8F%E4%BA%8E%E8%A6%81%E5%8F%91%E9%80%81%E7%9A%84string%E7%9A%84%E5%AD%97%E8%8A%82%E6%95%B0%2C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E5%8F%AF%E8%83%BD%E6%97%A0%E6%B3%95%E5%8F%91%E9%80%81string%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%95%B0%E6%8D%AE%E3%80%82%E5%A6%82%E6%9E%9C%E6%9C%89%E9%94%99%E8%AF%AF%E5%88%99%E4%BC%9A%E6%8A%9B%E5%87%BA%E5%BC%82%E5%B8%B8%3C%2Ftd%3E%0A%09%09%09%3Ctd%3E%E5%B0%9D%E8%AF%95%E5%8F%91%E9%80%81string%E7%9A%84%E6%89%80%E6%9C%89%E6%95%B0%E6%8D%AE%EF%BC%8C%E6%88%90%E5%8A%9F%E5%88%99%E6%94%BE%E5%9B%9ENone%EF%BC%8C%E5%90%A6%E5%88%99%E6%8A%9B%E5%87%BA%E5%BC%82%E5%B8%B8%3C%2Ftd%3E%0A%09%09%3C%2Ftr%3E%3C%2Ftbody%3E%3C%2Ftable%3E%3C%2Fdiv%3E%3Chr%3E%3Cul%3E%3Cli%3E%E5%85%B6%E4%BB%96%E6%96%B9%E6%B3%95%3C%2Fli%3E%0A%3C%2Ful%3E%3Cpre%20class%3D%22has%22%20name%3D%22code%22%20onclick%3D%22hljs.copyCode(event)%22%3E%3Ccode%20class%3D%22language-python%20hljs%22%3E%3Col%20class%3D%22hljs-ln%22%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-keyword%22%3Eimport%3C%2Fspan%3E%20socket%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es%20%3D%20socket.socket()%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%AE%9E%E4%BE%8B%E5%8C%96%E4%B8%80%E4%B8%AA%E5%A5%97%E6%8E%A5%E5%AD%97%E5%AF%B9%E8%B1%A1%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%A5%97%E6%8E%A5%E5%AD%97%E5%87%BD%E6%95%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.bind()%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E7%BB%91%E5%AE%9A%EF%BC%88%E4%B8%BB%E6%9C%BA%EF%BC%8C%E7%AB%AF%E5%8F%A3%E5%8F%B7%EF%BC%89%E5%88%B0%E5%A5%97%E6%8E%A5%E5%AD%97%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.listen()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%BC%80%E5%A7%8BTCP%E7%9B%91%E5%90%AC%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.accept()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%A2%AB%E5%8A%A8%E6%8E%A5%E6%94%B6TCP%E5%AE%A2%E6%88%B7%E7%9A%84%E8%BF%9E%E6%8E%A5%EF%BC%8C%EF%BC%88%E9%98%BB%E5%A1%9E%E5%BC%8F%EF%BC%89%E7%AD%89%E5%BE%85%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%88%B0%E6%9D%A5%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2210%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2211%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%A5%97%E6%8E%A5%E5%AD%97%E5%87%BD%E6%95%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2212%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.connect_()%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E4%B8%BB%E5%8A%A8%E5%88%9D%E5%A7%8B%E5%8C%96TCP%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9E%E6%8E%A5%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2213%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.connect_ex()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%98%AFconnect()%E6%96%B9%E6%B3%95%E7%9A%84%E6%89%A9%E5%B1%95%E7%89%88%E6%9C%AC%EF%BC%8C%E5%87%BA%E9%94%99%E6%97%B6%E8%BF%94%E5%9B%9E%E9%94%99%E7%A0%81%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E6%8A%9B%E5%87%BA%E5%BC%82%E5%B8%B8%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2214%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2215%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2216%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%AC%E5%85%AC%E7%94%A8%E9%80%94%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E5%87%BD%E6%95%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2217%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.recv()%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6TCP%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2218%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.send()%20%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%8F%91%E9%80%81TCP%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2219%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.sendall()%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%8F%91%E9%80%81TCP%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2220%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.recvfrom()%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E6%8E%A5%E6%94%B6UDP%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2221%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.sendto()%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%8F%91%E9%80%81UDP%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2222%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.getpeername()%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%BD%93%E5%89%8D%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E8%BF%9C%E7%AB%AF%E7%9A%84%E5%9C%B0%E5%9D%80%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2223%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.getsockname()%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%BD%93%E5%89%8D%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E5%9C%B0%E5%9D%80%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2224%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.getsockopt()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%BF%94%E5%9B%9E%E6%8C%87%E5%AE%9A%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E5%8F%82%E6%95%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2225%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.setsockopt()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%AE%9A%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E5%8F%82%E6%95%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2226%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.close()%20%20%20%20%20%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%85%B3%E9%97%AD%E5%A5%97%E6%8E%A5%E5%AD%97%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2227%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2228%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2229%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E9%9D%A2%E5%90%91%E9%94%81%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E6%96%B9%E6%B3%95%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2230%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.setblocking()%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%AE%BE%E7%BD%AE%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E9%98%BB%E5%A1%9E%E4%B8%8E%E9%9D%9E%E9%98%BB%E5%A1%9E%E6%A8%A1%E5%BC%8F%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2231%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.settimeout()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E8%AE%BE%E7%BD%AE%E9%98%BB%E5%A1%9E%E5%A5%97%E6%8E%A5%E5%AD%97%E6%93%8D%E4%BD%9C%E7%9A%84%E8%B6%85%E6%97%B6%E6%97%B6%E9%97%B4%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2232%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.gettimeout()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%BE%97%E5%88%B0%E9%98%BB%E5%A1%9E%E5%A5%97%E6%8E%A5%E5%AD%97%E6%93%8D%E4%BD%9C%E9%A5%BF%E8%B6%85%E6%97%B6%E6%97%B6%E9%97%B4%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2233%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2234%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%20%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2235%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3E%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E9%9D%A2%E5%90%91%E6%96%87%E4%BB%B6%E7%9A%84%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E5%87%BD%E6%95%B0%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2236%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.fileno()%20%20%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9A%84%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3Cli%3E%3Cdiv%20class%3D%22hljs-ln-numbers%22%3E%3Cdiv%20class%3D%22hljs-ln-line%20hljs-ln-n%22%20data-line-number%3D%2237%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22hljs-ln-code%22%3E%3Cdiv%20class%3D%22hljs-ln-line%22%3Es.makefile()%3Cspan%20class%3D%22hljs-comment%22%3E%23%20%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E4%B8%8E%E8%AF%A5%E5%A5%97%E6%8E%A5%E5%AD%97%E7%9B%B8%E5%85%B3%E7%9A%84%E6%96%87%E4%BB%B6%3C%2Fspan%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fli%3E%3C%2Fol%3E%3C%2Fcode%3E%3Cdiv%20class%3D%22hljs-button%22%20data-title%3D%22%E5%A4%8D%E5%88%B6%22%3E%3C%2Fdiv%3E%3C%2Fpre%3E%0A%0A%3Cp%3E%3Cstrong%3E%E5%AE%8C%E7%BB%93%3C%2Fstrong%3E%3C%2Fp%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A"
%E3%80%90%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B%E3%80%91的更多相关文章
-
JS数组 谁是团里成员(数组赋值)var myarray = new Array(66,80,90,77,59);//创建数组同时赋值
谁是团里成员(数组赋值) 数组创建好,接下来我们为数组赋值.我们把数组看似旅游团的大巴车,大巴车里有很多位置,每个位置都有一个号码,顾客要坐在哪个位置呢? 第一步:组个大巴车 第二步:按票对号入座 大 ...
-
http://www.cnblogs.com/zhaoguihua/tag/%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99/
http://www.cnblogs.com/zhaoguihua/tag/%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99/
-
http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/
http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%9 ...
-
【Unity3D游戏开发】性能优化之spine提高80~90%的效率 (三一)
Spine效率低 Unity项目加载spine动画,经常会出现卡顿的情况,如游戏中瞬间播放一个动画,打开一个带spine动画的界面.尤其是SkeletonRenderer.Awake时,会瞬间出现大量 ...
-
jmeter中50%70%80%90%代表的含义
参考 http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html 我的理解是: 在4.08秒响应时间内有50%的用户达到这个4.08的标准 ...
-
NAS 百科 —— http://baike.baidu.com/item/NAS%E7%BD%91%E7%BB%9C%E5%AD%98%E5%82%A8
NAS(Network Attached Storage)网络存储基于标准网络协议实现数据传输,为网络中的Windows / Linux / Mac OS 等各种不同操作系统的计算机提供文件共享和数据 ...
-
IDEA 搭建Java WEB 开发环境
本文是一篇讲解如何在 目前比较流行的IntellJ IDEA 下搭建JavaWEB的说明文档, 如有写的不详细的地方,希望各位留下自己宝贵的意义. Tips : 遇到的问题 , 请耐心看完文章,在文章 ...
-
【第三课】kaggle案例分析三
Evernote Export 比赛题目介绍 TalkingData是中国最大的第三方移动数据平台,移动设备用户日常的选择和行为用户画像.目前,TalkingData正在寻求每天在中国活跃的5亿移动设 ...
-
【udacity】机器学习-神经网络
Evernote Export 1.神经网络 神经元 细胞的主体称为细胞体,然后有轴突.突触 他们构建的方式是可以调整的 我们会有一些输入的放电信号视为放电频率或输入的强度 X1w1X2w2X ...
随机推荐
-
shiny server SparkR web展示界面(一)
1. shiny server简介 shiny-server是一种可用把R 语言以web形式展示的服务,下面就讲讲如何在自己的服务器上构建Shiny Server.下一篇主要介绍如何集成sparkR后 ...
-
X509Certificate2 本地正常,放到线上内部错误
iis 找到部署的站点应用连接池,右键高级设置,找到“加载用户配置文件”改为true.window service2008 默认为false的.
-
JDBC的基本用法
一.编程步骤 1.加载驱动 Class forName("com.mysql.jdbc.Driver"):mysql驱动 Class forName("oralce.jd ...
-
使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(二)
前言:在使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(一)中已经介绍了如何对web基础环境进行搭建,这里主要演示,如何对spring环境进行搭建,然后 ...
-
vue 学习笔记—路由篇
一.关于三种路由 动态路由 就是path:good/:ops 这种 用 $route.params接收 <router-link>是用来跳转 <router-view> ...
-
Wireshark抓包实例诊断TCP连接问题
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 前文论述了TCP基础知识,从本节开始,通过TCP抓包实例来诊断TCP常见问 ...
-
HNOI 越狱
题目描述 *有连续编号为 1…N的 N 个房间,每个房间关押一个犯人,有 M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱. 输入输出格式 ...
-
phpadmin试用
在Windows或者Linux下mysql安装后默认的密码为空,又当我们又安装了mysql的管理工具phpmyadmin后登陆时 出现“空密码登陆呗禁止(参见允许密码为空)”.不能登录成功 ...
-
15 款优化表单的 jQuery 插件
网页上的表单提供给用户的一种交互的方式,用户输入数据,提交到服务器,等待后续的处理.这些表单在我们浏览的网页中随处可见,也容易被我们忽略. 比如,“联系我们”页面会提供一个表单给用户填写他们的信息和想 ...
-
mongodb数据处理工具
最近大家需要对mongodb和postgres数据库操作比较频繁,给大家推荐一个数据处理工具Kettle,希望对你能有所帮助 ① 将mongodb数据库中的表进行处理然后导出来生成csv,txt, ...