① 什麼是winsocket編程介面
Windows下網路編程的規范-Windows
Sockets是Windows下得到廣泛應用的、開放的、支持多種協議的網路編程介面。從1991年的1.0版到1995年的2.0.8版,經過不斷完善並在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成為Windows網路編程的事實上的標准。
Windows
Sockets規范以U.C.
Berkeley大學BSD
UNIX中流行的Socket介面為範例定義了一套Micosoft
Windows下網路編程介面。它不僅包含了人們所熟悉的Berkeley
Socket風格的庫函數;也包含了一組針對Windows的擴展庫函數,以使程序員能充分地利用Windows消息驅動機制進行編程。Windows
Sockets規範本意在於提供給應用程序開發者一套簡單的API,並讓各家網路軟體供應商共同遵守。此外,在一個特定版本Windows的基礎上,Windows
Sockets也定義了一個二進制介面(ABI),以此來保證應用Windows
Sockets
API的應用程序能夠在任何網路軟體供應商的符合Windows
Sockets協議的實現上工作。因此這份規范定義了應用程序開發者能夠使用,並且網路軟體供應商能夠實現的一套庫函數調用和相關語義。遵守這套Windows
Sockets規范的網路軟體,我們稱之為Windows
Sockets兼容的,而Windows
Sockets兼容實現的提供者,我們稱之為Windows
Sockets提供者。一個網路軟體供應商必須百分之百地實現Windows
Sockets規范才能做到現Windows
Sockets兼容。任何能夠與Windows
Sockets兼容實現協同工作的應用程序就被認為是具有Windows
Sockets介面。我們稱這種應用程序為Windows
Sockets應用程序。Windows
Sockets規范定義並記錄了如何使用API與Internet協議族(IPS,通常我們指的是TCP/IP)連接,尤其要指出的是所有的Windows
Sockets實現都支持流套介面和數據報套介面.應用程序調用Windows
Sockets的API實現相互之間的通訊。Windows
Sockets又利用下層的網路通訊協議功能和操作系統調用實現實際的通訊工作。它們之間的關系如圖
通信的基礎是套介面(Socket),一個套介面是通訊的一端。在這一端上你可以找到與其對應的一個名字。一個正在被使用的套介面都有它的類型和與其相關的進程。套介面存在於通訊域中。通訊域是為了處理一般的線程通過套介面通訊而引進的一種抽象概念。套介面通常和同一個域中的套介面交換數據(數據交換也可能穿越域的界限,但這時一定要執行某種解釋程序)。Windows
Sockets規范支持單一的通訊域,即Internet域。各種進程使用這個域互相之間用Internet協議族來進行通訊(Windows
Sockets
1.1以上的版本支持其他的域,例如Windows
Sockets
2)。套介面可以根據通訊性質分類;這種性質對於用戶是可見的。應用程序一般僅在同一類的套介面間通訊。不過只要底層的通訊協議允許,不同類型的套介面間也照樣可以通訊。用戶目前可以使用兩種套介面,即流套介面和數據報套介面。流套介面提供了雙向的,有序的,無重復並且無記錄邊界的數據流服務。數據報套介面支持雙向的數據流,但並不保證是可靠,有序,無重復的。也就是說,一個從數據報套介面接收信息的進程有可能發現信息重復了,或者和發出時的順序不同。數據報套介面的一個重要特點是它保留了記錄邊界。對於這一特點,數據報套介面採用了與現在許多包交換網路(例如乙太網)非常類似的模型。
一個在建立分布式應用時最常用的範例便是客戶機/伺服器模型。在這種方案中客戶應用程序向伺服器程序請求服務。這種方式隱含了在建立客戶機/伺服器間通訊時的非對稱性。客戶機/伺服器模型工作時要求有一套為客戶機和伺服器所共識的慣例來保證服務能夠被提供(或被接受)。這一套慣例包含了一套協議。它必須在通訊的兩頭都被實現。根據不同的實際情況,協議可能是對稱的或是非對稱的。在對稱的協議中,每一方都有可能扮演主從角色;在非對稱協議中,一方被不可改變地
② 在windows下,如何用純C語言實現socket網路編程
mfc只是對socket進行了一些抄封裝,大部分襲人做網路編程都是用的原始的socket,比如如下介面都可以在c下進行調用
1.socket()
2.bind()
3.connect()
4.listen()
5.accept()
6.send() 和recv()
7.sendto() 和recvfrom()
8.close() 和shutdown()
9.getpeername()
10.gethostname()
這些介面是在Winsock2.h中定義的不是在mfc中定義的,你只需要包含Winsock2.h頭文件和Ws2_32.lib庫就可以了。
③ 學習socket 編程有什麼發展方向
socket只是網路編程的基礎,談不上什麼發展方向
如果你打算開發的應用,需要什麼樣的控製程度
如果你只是打算用動態網頁,其實不懂socket也沒有什麼關系,學好asp.net或jsp/servlet就足夠了
如果你想做底層的應用,譬如視頻會議,就需要對網路體系結構,視頻協議,包括socket編程等,有深刻的理解
④ Winsocket是什麼
Winsocket是windows socket的簡寫,是指Windows下網路編程的規范。
Windows Sockets是Windows下得到廣泛應用的、開放的、支持多種協議的網路編程介面。從1991年的1.0版到1995年的2.0.8版,經過不斷完善並在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成為Windows網路編程的事實上的標准。
Windows Sockets規范以U.C. Berkeley大學BSD UNIX中流行的Socket介面為範例定義了一套microsoft Windows下網路編程介面。
(4)精通windowssocket網路開發擴展閱讀:
Windows Sockets模型中,把所有比較靠下面的層次稱為網路系統,把靠上面的層次稱為WinSock應用程序,而WinSock的應用編程介面(API)位於兩者之間。
動態鏈接庫(DLL)是windows的重要特性,動態鏈接庫是帶有定義明確的介面的可執行過程的庫,就像其名稱所提示的那樣,應用程序是在運行時動態鏈接這些庫的,而不是在編譯時靜態鏈接。
⑤ 作為一個想在編程方面能養家糊口的計算機科學與技術的專業生需要其他什麼知識,光編程語言就可以了嗎
看看一下一些公司的招聘要求,我想你就會知道該學些什麼了!
360公司招聘要求:
高級客戶端開發工程師
1、熱愛軟體開發、編碼基本功扎實;
2、熟練使用C/C++;
3、有3年以上Windows軟體開發經驗;
4、精通Windows程序設計,有豐富的Windows圖形界面開發經驗、熟悉COM原理和Windows SDK基本原理;
5、可以比較獨立負責開發模塊、有一定框架設計能力以及調試能力為好;
6、熟練使用MFC,WTL,或熟練掌握Delphi,C++ Builder開發;
7、具有良好的主動意識、溝通和合作能力。
高級PHP開發工程師
1、計算機或相關專業本科學歷,3年以上大型網站開發經驗;
2、三年以上FreeBSD/linux平台開發經驗,從事過互聯網開發,精通LAMP系統;
3、有能力跟蹤和學習最新的軟體技術,經常在各個open source項目中與他人溝通,交流經驗;
4、具有自我管理能力,有團隊精神,樂於溝通和提供幫助。
360技術支持工程師
工作職責:
負責解答用戶使用360各產品時遇到的問題
與各個產品部門溝通,跟進重要問題的解決
總結用戶反饋,能發現當前產品發生的最多的問題
熟悉殺毒、系統整理等常見的問題,熟悉安全軟體
任職資格:
熟悉360全線產品,經常使用360產品,可以熟練說出360產品的功能特點;
熟悉安全軟體,對於電腦常見問題具有一定的處理能力;
具有產品敏感度,善於發現產品問題;
執行力較強,可以推進和跟進問題解決,且能勝任高強度的工作壓力;
性格外向,有責任心,有團隊榮辱感;
Unix C++工程師
1、計算機或數學相關專業碩士以上學歷;
2、熟悉Linux/FreeBSD環境開發;
3、深入理解C/C++語言, 熟練掌握其它編程語言更佳;
4、熟練掌握數據結構,具有良好的演算法基礎及系統分析能力;
5、具備良好的編程習慣,能夠編寫高質量技術文檔;
6、良好的邏輯思維能力,對於創新及解決具有挑戰性的問題充滿激情;
7、良好的團隊合作意識和溝通能力;
8、參與過開源項目開發者尤佳。
系統運維工程師
1、本科以上學歷,計算機相關專業;
2、2年以上相關工作經驗;
3、熟悉線上機器正常運行的各項參數,對不同使用場景的機器,load/CPU usage/磁碟IO 的正常值有正確的認識;
4、熟練掌握FreeBSD 命令,會寫一些shell 腳本;熟練掌握systat/netstat/iostat/dmesg 等觀察系統的基本命令;
5、掌握Apache/Nginx 的安裝、配置,會做一些基本的參數調整;
6、熟悉PHP 的安裝、配置;熟悉memcached 安裝、配置;
7、熟悉MySQL 資料庫的安裝、配置;熟悉MySQL 配置;熟悉MySQL 的全量、增量備份;MySQL Master/Slave 的設置;
8、未來要掌握LVS/HAProxy/MySQL Proxy 等負載均衡軟體、高可靠性軟體的使用。
360產品經理
1、3年及以上互聯網或軟體行業工作經驗,1年以上產品管理(Proct Management)經驗;
2、思維發散,富於創意,願意嘗試一些新產品、新事物;對目前流行的互聯網產品做過分析,有自己獨到的見解;
3、關心互聯網的產品、應用和技術,善於使用各類軟體,對於軟體易用性比較敏感;
4、熟悉UI/UE,能夠獨自完成項目界面設計,研究並改善用戶體驗;
5、有一定的項目管理經驗,能夠協調組織一個產品的策劃實施運營過程;
6、具備安全領域經驗或系統優化方面經驗者優先;
7、善於溝通,有較高的情商。
BD經理
1、對電子商務網站、webgame、支付平台非常熟悉;
2、有較強的與其他行業合作夥伴的溝通能力,具有較高的溝通技巧;
3、對產品需求具有敏感度;
4、能夠與產品進行有效溝通。
高級文案策劃
1、本科以上學歷,新聞與傳播、計算機專業優先;2年以上公關公司或企業公關撰稿文案經驗,文字水平優良,提供作品;
2、有較強的創意策劃能力,能獨立完成簡單的項目策劃方案,提供方案作品;
3、英文水平良好,能熟練使用搜索工具找到中英文資料並進行簡單的編譯工作;
4、必須具備一定的計算機與軟體基礎知識;有計算機與軟體類專業媒體工作經歷者優先;
5、能承受較強的工作壓力,有良好團隊合作意識。
測試工程師
1、計算機或相關專業大學本科或以上學歷;
2、熟悉軟體測試流程,有1年以上軟體測試經驗;
3、精通軟體測試理論和方法,能夠熟練應用 MI 的功能和性能測試工具;
4、熟練掌握各種 windows 操作系統,精通計算機網路知識;
5、有較強的邏輯分析能力和學習能力;
6、擁有較好的溝通技巧及團隊合作精神,較強的責任感及進取精神;
7、對軟體測試有濃厚的興趣,善於分析和發現問題;
8、可以勝任重復性工作,工作細致認真,有耐心。
前台文秘
1、大專以上,行政管理等相關專業畢業;
2、有半年以上相關崗位的工作經驗;
3、能熟練使用相關辦公軟體;
4、具有良好的人際關系處理能力、溝通能力;
5、年齡在25歲以下,形象好,熱情親切,普通話流利;
6、工作踏實努力。
運營專員(網頁防火牆、運營中心)
1、對網路安全方面感興趣,並有一定的計算機知識基礎;
2、有客戶服務經驗,解決處理用戶反饋問題的能力;
3、熟悉360產品,了解同類安全軟體的使用;
4、對木馬病毒插件查殺有基礎了解;
5、工作細心,有耐心,溝通能力強。
高級電腦維護工程師
1、對解決電腦各種軟硬體問題有狂熱的愛好和興趣;
2、擁有廣泛的電腦軟硬體知識,關注IT界發展動態;
3、擁有電腦軟硬體維修維護經驗及客戶服務經驗;
4、有縝密的邏輯思維能力和嚴謹的文檔編寫能力,良好的溝通和協調能力;
5、性格開朗,對事物有好奇心,喜歡團隊工作,學習能力強;
6、精通WINDOWS系統注冊表結構,能自行修復注冊表錯誤;
7、精通WINDOWS系統文件結構,了解WINDOWS啟動原理;
8、了解各項系統錯誤編號、藍屏編號含義;
9、了解電腦軟硬體運行原理;對硬體各項數據參數有一定了解;
10、熟悉硬體驅動程序原理,了解電腦病毒及木馬的處理方法;
11、在不重裝系統的情況下可以解決絕大部分系統、軟體問題。
游戲運營專員
1、精通數據分析;
2、熟悉游戲推廣、運營工作流程;
3、擅長市場推廣統籌,有一定推廣創意能力;
4、具備某款游戲的完整推廣、運營經歷;
5、熟悉游戲用戶行為。
網路部分職位招聘要求:
部門描述:
負責網路windows產品線開發,為用戶提供便捷的搜索服務。
工作方向:信息提取,檢索技術、p2p數據傳輸相關技術、瀏覽器插件相關技術、windows系統內核相關技術
工作職責:
網路客戶端產品開發與模塊升級,新產品,新技術調研,提升網路用戶體驗與忠誠度
職位要求:
-熟練掌握C++語言,VC開發工具
-熟練掌握COM,STL,WTL,ATL等技術
-熟練掌握windows平台基礎技術:進程、線程、內存管理、消息機制等
-掌握常規數據結構和演算法,具備良好的邏輯分析思維能力
-具有良好的團隊合作精神和溝通能力
-具有較強的責任感
-有下列相關研發經驗者優先:
1、瀏覽器內核及相關技術
2、輸入法相關技術
3、UI開發技術
4、即時通信客戶端軟體開發
奇藝網招聘要求:
客戶端高級開發工程師 招聘人數:1人 工作地點:北京
職責描述:
1.負責PC客戶端播放器軟體、LINUX平台機頂盒相關模塊的開發、維護;
2.負責相關模塊的框架設計文檔、技術文檔的編寫和維護;
3.相關模塊的內部開發測試、聯調、優化。
職位要求:
1.具有豐富的windows、linux平台開發經驗,熟悉操作系統底層原理;
2.熟悉COM組件、多線程、MFC、WTL、DX、P2P等的技術開發;
3.了解音視頻編解碼標准:H.264/H.263,MPEG-1/2/4,AVS,VC1,RV,VP8,PCM/ADPCM,AMR,MP3,WMA,AAC,AC3,DTS等;
4.精通多媒體容器封裝標准,能夠根據實際需求進行開發,包括但不限於視頻流,音頻流,字幕流等;
5.熟悉多媒體開源工具(代碼)的使用、二次開發、重新封裝,並能基於其框架進行開發(如ffmpeg,mplaryer,mp4box,xvid,mencoder,x264等);
6.具有流媒體播放器、流媒體直播、點播、機頂盒開發經驗者優先考慮;
7.有較強的分析問題和獨立解決問題的能力,良好的溝通能力、團隊合作精神與敬業精神。
點擊投遞簡歷 返回頂部↑
高級視頻編碼演算法工程師招聘人數:1人 工作地點:北京
職責描述:
1.針對目前技術架構體系和業務流程進行改善,從質量和效率上持續優化,不斷提升用戶體驗;
2.多媒體編解碼/轉碼伺服器系統後台應用開發,底層分發優化開發維護。
職位要求:
1.計算機或電子通信等相關專業碩士及以上學歷,兩年以上相關經驗;
2.精通音視頻編解碼器設計和實現,具有實際產品設計和項目開發經驗,對於標準定義和未定義功能模塊均有相關經驗;
3.精通H.264編碼標准,了解SVC(Scalable Video Coding)編碼技術;
4.了解一種或多種音頻編碼標准,如MP3,AC3,AAC等;
5.了解多媒體容器封裝標准,能夠根據實際需求進行開發,包括但不限於視頻流,音頻流,字幕流等(例:mp4,ts,flv,3gp,srt,ssa,ass);
6.熟熟悉多媒體開源工具的使用,並能基於其框架進行開發(ffmpeg,x264,handbrake等);
7.熟悉模式識別、人臉檢測或OPENCV者優先考慮;
8.有較強的分析問題和獨立解決問題的能力,良好的溝通能力、團隊合作精神與敬業精神,具備良好的時間/任務安排管理能力。
點擊投遞簡歷 返回頂部↑
高級搜索研發工程師招聘人數:1人 工作地點:北京
職責描述:
1.站內搜索引擎架構設計、功能開發及優化;
2.基於用戶行為的搜索數據分析、搜索演算法優化。
職位要求:
1.扎實的java開發技術功底,熟悉struts2/spring/hibernate等開源web框架;
2.具備Lucene、Sphinx等相關應用項目經歷;
3.精通搜索引擎常見原理及相關技術;
4.對網頁爬蟲、網頁分析、信息抽取,有深入了解;
5.熟練運用sql語句,熟悉使用mysql資料庫;
6.具備良好的團隊合作精神。
點擊投遞簡歷 返回頂部↑
高級視頻開發工程師招聘人數:1人 工作地點:北京
職責描述:
1.負責視頻編碼平台底層架構設計與開發。
職位要求:
1.計算機或相關專業本科及以上學歷;
2.精通PHP/Perl/Python 等腳本語言中的一種或多種,具備良好的編程風格;
3.具備系統架構設計能力,有獨立設計開發項目經驗者優先;
4.熟悉SQL語句,能夠熟練使用Mysql等資料庫;
5.熟悉Linux使用,能夠在Linux平台下進行開發;
6.有較強的分析問題與獨立解決問題的能力,良好的溝通能力及團隊合作精神。
點擊投遞簡歷 返回頂部↑
演算法與數據挖掘師招聘人數:1人 工作地點:北京
職責描述:
1.從海量數據中發現隱含的規律,支持公司的各種決策;
2.探索並實現高效的搜索、推薦、廣告投放等演算法。
職位要求:
1.扎實的數學和計算機科學功底,以及出色的編程能力;
2.至少有如下知識背景之一:自然語言處理和信息抽取;數據挖掘/機器學習;信息檢索;高性能計算;
3.有2年以上相關工作經驗者優先;
4.熟悉Linux系統,並且至少熟悉Python,Perl,shell,PHP等腳本語言其中之一者優先;
5.熟悉Hadoop並有豐富的Map/Rece程序開發經驗者優先。
點擊投遞簡歷 返回頂部↑
系統運營工程師招聘人數:2人 工作地點:北京
職責描述:
1.網路、系統監控值班,突發事件處理,故障響應處理;
2.生產系統流量監控,突發事件處理;
3.使用腳本語言編寫系統管理所需的自動化工具;
4.伺服器、網路設備初始化部署和故障處理;
5.操作系統、系統軟體的部署、維護和管理;
6.文檔撰寫,編寫各類手冊、文檔和說明。
職位要求:
1.兩年以上工作經驗,一年以上互聯網企業系統管理工作經驗;
2.熟悉Linux(或其他*nix操作系統)的管理和維護;
3.熟悉shell或Python,能夠獨立編寫自動化腳本;
4.熟悉域名解析原理,了解bind8/9配置;
5.了解操作系統原理,熟悉Linux系統各類參數,有一定的系統優化經驗;
6.了解Mysql,了解關系資料庫理論;
7.了解TCP/IP協議,了解cdn原理;
8.可短暫出差;
9.了解Cisco或HuaWei等廠商主流網路產品配置和調試優先;
10.1年以上100台以上伺服器獨立管理經驗或1年以上視頻網站系統管理工作經驗者優先;
11.目標導向,能夠承擔較大的工作壓力。
點擊投遞簡歷 返回頂部↑
客戶端技術經理招聘人數:1人 工作地點:北京
職責描述:
負責客戶端開發及團隊管理。
職位要求:
1.本科以上學歷;
2.精通C/C++, 熟練使用Visual C++開發環境,編程風格清晰;
3.熟悉WTL或MFC界面編程,精通Windows平台用戶界面開發技術, 熟悉各種控制項定製編程 ,熟悉D3D或opengl技術者優先;
4.有豐富的Windows平台下網路編程經驗;
5.有媒體播放器開發經驗, 熟悉DirectShow編程者優先;
6.具有P2P開發經驗者, 熟悉BT等P2P協議;
7.五年以上開發經驗,有開發大型客戶端項目開發經驗;
8.工作責任心強, 良好的溝通和團隊合作能力, 可在項目壓力下堅持工作;
9.優秀的團隊組織能力、良好的溝通協調能力。
點擊投遞簡歷 返回頂部↑
數據挖掘技術工程師招聘人數:1人 工作地點:北京
職責描述:
1.實現大規模數據挖掘的、精準廣告定位、相關視頻推薦等系統中的重要模塊;
2.從系統應用的角度,利用數據挖掘/統計學習的理論和方法解決實際問題。
職位要求:
1.扎實的計算機科學基礎和優秀的編程能力,熟練使用Java、Python或者Perl語言;
2.優秀的分析問題和解決問題的能力,能夠把合理的思路成功應用於實踐;
3.熟悉Linux系統,有大量的編碼經驗者優先;
4.有1年以上相關工作經驗者優先;
5.有數據倉庫建模經驗,熟悉Hadoop、pig、HIVE、HBase、sqoop等開源框架者優先。
點擊投遞簡歷 返回頂部↑
廣告引擎高級開發工程師招聘人數:2人 工作地點:北京
職責描述:
1.linux下高性能後台服務的設計和開發;
2.參與系統設計、編寫和優化廣告引擎和其他相關後台服務;
3.維護相關系統,高效,穩定的運行。
職位要求:
1.熟悉Linux/Unix平台上的C/C++編程,至少熟悉SHELL/Python其中一門腳本語言,熟悉erlang者優先;
2.熟悉常用演算法和數據結構,有一定的系統架構設計經驗;
3.熟悉網路編程、多線程編程技術,有大規模系統開發和設計經驗;
4.有分布式系統或並行計算相關工作經驗;
5.對技術敏感而細致,樂於發現、分析和解決復雜問題;
6.善於學習新的知識,動手能力強,具有開拓創新精神;
7.良好的團隊合作精神,較強的溝通能力;
8.自我管理能力強,有良好的時間意識;
9.了解廣告相關技術,有相關經驗者優先。
點擊投遞簡歷 返回頂部↑
廣告系統高級java工程師招聘人數:4人 工作地點:北京
職責描述:
1.進行軟體系統分析、架構設計和核心技術開發;
2.負責廣告系統開發,包括內部業務支撐系統的開發。
職位要求:
1.精通Java,熟練掌握Java網路編程;
2.熟練運用常用開源軟體(Spring/Hibernate/spring mvc/ibatis),熟悉groovy/grails/scala者優先;
3.熟悉互聯網開發模式,清晰理解緩存,緩存設計和模式;熟悉osgi者優先;
4.精通TCP/IP、HTTP等網路協議,有用Java做大訪問量高壓力網路應用的經驗;
5.熟悉Linux/Nginx,熟練配置維護Apache,Tomcat,Resin等應用伺服器,掌握shell/awk/python等系統腳本工具;
6.熟練掌握SQL語句,熟練使用資料庫(Oracle、MySQL);
7.熟悉HTML/JAVASCRIPT/CSS/Ajax 等頁面技術;
8.熟練使用Eclipse/Maven/Ant/SVN等軟體開發工具;
9.三年以上互聯網開發經驗,有廣告系統相關開發經驗者優先;
10.計算機科學或相關技術學科的本科以上學歷。
點擊投遞簡歷 返回頂部↑
PHP高級開發工程師招聘人數:2人 工作地點:北京
職責描述:
1.協助系統架構師進行系統架構設計;
2.負責網站項目設計和代碼開發;
3.承擔項目代碼質量和掌控時間進度;
4.文檔撰寫能力,在前期期間設計交付:資料庫設計文檔、系統架構設計文檔、數據介面文檔,在編碼期間能撰寫清晰明了的注釋;
5.在開發過程中發現存在的問題,共同制定開發流程規范;
6.與產品人員主動溝通,解決產品設計中存在問題,提升產品質量。
職位要求:
1.計算機及相關專業畢業,本科以上學歷;
2.兩年以上PHP網頁編程相關工作經驗;
3.精通LAMP編程環境開發和性能優化;
4.精通MySQL等開源資料庫;
5.具備良好的代碼編程習慣及較強的文檔編寫能力;
6.具備良好的溝通能力和團隊精神。
點擊投遞簡歷 返回頂部↑
高級前端開發工程師招聘人數:2人 工作地點:北京
職責描述:
1.熟練應用w3c標准,利用HTML/CSS/Javascript 開發符合標准高性能的網站;
2.了解AJAX實現原理,熟悉actionscript等開發語言,配合產品交互設計制定開發規范;
3.和後台工程師一起研討技術實現方案,制定服務介面等;
4.積累並完善自己的前端WEB開發框架,Javascript開發框架。
職位要求:
1.精通HTML/CSS/Javascript,熟悉W3C標准,對頁面的性能和瀏覽器兼容有豐富的實踐經驗
2.三年以上互聯網開發經驗和用戶交互經驗,有Google 或者Yahoo 客戶端開發經驗者優先
3.了解搜索引擎的基本原理,熟練掌握前端頁面與後台服務的數據交換機制;
4.熟悉至少一門非Web前端腳本的語言(如Java/PHP/python),並有項目經驗;
5.有Flash,ActionScript開發經驗者優先;
6.具有較強的團隊合作精神、進取心和求知慾,熱愛學習,勇於挑戰
點擊投遞簡歷 返回頂部↑
linux c/c++開發工程師招聘人數:若干 工作地點:北京
職責描述:
1.linux下高性能c/c++伺服器的設計和開發;
2.參與系統設計、編寫P2P點播直播的Tracker伺服器\媒體源伺服器\NAT伺服器等;
3.公司其它項目後台系統設計和開發。
職位要求:
1.熟悉Linux/Unix平台上的C/C++編程,至少熟悉SHELL/Python/PHP其中一門腳本語言;
2.熟悉常用演算法和數據結構,有一定的系統架構設計經驗;
3.熟悉網路編程、多線程編程技術,有大規模系統開發和設計經驗;
4.有分布式系統或並行計算相關工作經驗;
5.對技術敏感而細致,樂於發現、分析和解決復雜問題;
6.善於學習新的知識,動手能力強,具有開拓創新精神;
7.良好的團隊合作精神,較強的溝通能力;
8.自我管理能力強,有良好的時間意識;
9.了解流媒體技術,熟悉rtmp/rtmpe等協議更佳。
點擊投遞簡歷 返回頂部↑
P2P網路開發工程師招聘人數:1名 工作地點:北京
職責描述:
1.P2P內核及伺服器開發;
2.P2P演算法優化。
職位要求:
1.計算機相關專業,本科以上學歷;
2.熟悉C/C++編程,熟悉STL,了解Boost;
3.熟悉常用演算法和數據結構,有一定的系統架構設計經驗;
4.熟悉TCP/IP原理,了解NAT穿越;
5.善於學習新的知識,動手能力強,具有開拓創新精神;
6.良好的團隊合作精神,較強的溝通能力;
7.有P2P項目開發經驗者優先;
點擊投遞簡歷 返回頂部↑
P2P存儲開發工程師招聘人數:1名 工作地點:北京
職責描述:
1.P2P文件系統開發;
2.P2P分布存儲優化。
職位要求:
1.計算機相關專業,本科以上學歷;
2.熟悉C/C++編程,熟悉STL;
3.熟悉常用演算法和數據結構,有一定的系統架構設計經驗;
4.熟悉文件系統原理;
5.善於學習新的知識,動手能力強,具有開拓創新精神;
6.良好的團隊合作精神,較強的溝通能力;
7.有數據存儲項目開發經驗者優先。
點擊投遞簡歷 返回頂部↑
高級測試工程師招聘人數:1名 工作地點:北京
職責描述:
1.負責日常版本的軟體測試工作;完成測試用例設計和執行工作、熟練編寫用戶手冊;
2.與開發團隊溝通,充分了解正在開發的軟體系統,設計完備而有針對性的系統測試方案;
3.從測試角度反映項目進度;
4.白盒測試及壓力測試。
職位要求:
1.本科以上學歷,2年以上相關工作經驗;
2.熟悉常用的bug管理系統、自動化測試工具、性能測試工具、配置管理工具;
3.熟悉白盒測試、壓力測試等測試方法;
4.熱愛軟體測試行業,熱衷於測試工具的開發,對當前流行工具有較深的研究;
5.有良好的溝通表達能力和團隊協作精神,能夠與軟體開發團隊保持很好的溝通和互動;
6.有大型網站測試經驗優先。
點擊投遞簡歷 返回頂部↑
高級Flash開發工程師 招聘人數:2人 工作地點:北京
職責描述:
1.開發大型網站基於Flash的各種應用程序;
2.開發基於Flash的各種動畫;
3.基於Flash技術的創新研究、應用。
職位要求:
1.精通Flash的開發流程和框架,精通ActionScript 3.0編程設計,具備良好的編程習慣,有一定的OO編程思想;
2.精通FLASHCOM、XMLSOCKET等網路連接協議或程序,AS中視頻流處理和各種網路介面處理有較豐富經驗。了解各種後台數據交換機制;
3.具備良好的架構分析能力與設計能力,能夠積極參與前期設計,具備優秀的編程能力,對常見動畫效果演算法有一定地了解;
4.熟悉互動效果實現,配合設計師圖形、動畫和動態程序做到完美結合;
5.對互聯網web產品有靈敏的觸覺和領悟力,對互聯網用戶交互體驗有較為深入的理解;
6.有良好的學習能力,關注行業的最新發展和動向,有開發過flash游戲、sns互動組件經驗者優先;
7.有Flash視頻播放器開發經驗者優先,了解Adobe技術產品體系者優先;
8.有大型互聯網公司或視頻網站任職經歷為佳;
9.思路清晰,具備良好的溝通能力和理解能力,對技術有鑽研和愛好。
點擊投遞簡歷 返回頂部↑
高級系統開發工程師 招聘人數:若干 工作地點:北京
職責描述:
1.使用shell或其它腳本語言編寫運維服務所需的服務,編寫各種伺服器端程序和插件;
2.公司網路系統架構設計;
3.對伺服器運行狀況、服務負載進行監控,及時發現問題並報告相關人員;
4.發布程序代碼,安裝、調試程序運行環境;
5.服務性能優化,讓所有服務運行在最佳狀態;
6.文檔撰寫能力,編寫系統運維手冊、部署文檔、性能參數說明;
7.配合開發人員完成各種測試工作;
8.公司網站域名體系的開發,維護,變更。
職位要求:
1.兩年以上工作經驗,有高負載網站的開發、運維經驗;
2.精通Nginx,Linux 等操作系統的管理維護;
3.精通shell,精通 Perl/Python/C/C++之一開發語言,能夠熟練編寫自動化腳本;
4.了解操作系統原理,熟知各種性能參數和系統優化經驗;
5.對Mysql有十分深入的認識,熟練掌握關系資料庫理論;
6.精通TCP/IP等各種網路通訊協議和開發,對各種網路硬體有全面、深入的了解;
7.熟悉域名解析原理,並精通bind8/bind9配置管理;
8.熟悉cdn原理;
9.了解Adobe FMS技術系統,或大型互聯網公司或視頻網站工作經驗者優先;
10.具備較強的溝通能力和服務意識,具備較強的團隊合作精神,為人誠實正直,
踏實肯干,並能適應高強度的工作壓力。
點擊投遞簡歷 返回頂部↑
高級Java開發工程師 招聘人數:若干 工作地點:北京
職責描述:
1.進行軟體系統分析、架構設計和核心技術開發;
2.負責視頻網站系統開發,架構設計。
職位要求:
1.精通Java,熟練掌握Java網路編程;
2.熟練運用開源軟體包(Spring/Hibernate/JGroups/Struts);
3.熟悉互聯網開發模式,清晰理解緩存,緩存設計和模式,熟悉C、C++等者優先;
4.精通TCP/IP、HTTP等網路協議,精通socket網路編程,有用Java做大訪問量高壓力網路應用的經驗;
5.熟悉Linux/Nginx,熟練配置維護Apache,Tomcat,Resin等應用伺服器,掌握shell/awk/python等系統腳本工具;
6.熟練掌握SQL語句,熟練使用資料庫(Oracle、MySQL);
7.熟悉HTML/JAVASCRIPT/CSS/Ajax 等頁面技術;
8.熟練使用Eclipse/Maven/Ant/SVN等軟體開發工具;
9.五年以上互聯網開發經驗,有CMS、視頻系統開發經驗者優先;
10.計算機科學或相關技術學科的學士,碩士學位(或同等學歷)。
點擊投遞簡歷 返回頂部↑
高級網路工程師招聘人數:若干 工作地點:北京
職責描述:
1.交換、路由區域網及廣域網的設計、建設及維護;
2.網路管理平台的建設,利用廠商及開放平台並在其上進行一定的開發工作以適應我們的要求;
3.IDC的網路運維及支持工作;
4.網路系統(交換機、路由器、負載均衡設備、防火牆等)的管理維護;
職位要求:
1.計算機或相關專業本科以上學歷;
2.熟悉網路理論(如OSI七層模型,TCP狀態機),網路協議(TCP/IP)等;
3.熟悉各種網路設備的配置調試及故障分析(CISCO H3C等);
4.熟悉4-7層技術,熟悉F5/NetScaler等設備;
5.熟悉網路管理平台,了解SNMP的原理及應用;
6.熟悉UNIX系統,具備一定的語言開發能力(perl php c shell script)及相關開發工作經驗者優先;
7.較強的英文讀寫能力,工作積極主動,能承受較大壓力。
⑥ socket 編程中,write 23107個位元組,read 讀取完23107個位元組後,竟然還能繼續讀取到自己
socket中有接收和發送數據緩沖區,緩沖區是有大小限制的,這個是可以更改的。如果你沒有更改的話,那發送和接收的時候肯定不是你想要的數據。
socket發送接收數據函數,send和recv,你的write和read肯定是封裝好的,如果你的接收緩沖區不是以'\0'接收,而發送的數據不以'\0'為結束符,所以你的接收緩沖區數據肯定是亂的,因為顯示出來的數據超出了你接收的數據。
一般情況下,socket編程中,發送與接收協議都是需要需求自己封裝的,這樣會使問題簡單化,也便於後期調試。
⑦ 本人看了藍皮書c和c++ primer plus,vc,mfc了解一部分。windows程序設也看了上冊。想重學c++
我也大四了,不是計算機專業的。正在看C++Primer,感覺挺好。Windows核心編程建議先看看潘愛民翻譯的那本深入解析Windows操作系統,不過那本書挺枯燥的。孫鑫VC視頻是不錯,再推薦一本侯捷的深入淺出MFC。C++這東西沒用的話,感覺還是記不住。關於Windows socket編程,精通Windows Sockets網路開發--基於Visual C++實現,不錯,五個I/O模型,五個例子。跟你一樣,想今年找一份程序員的工作。
⑧ 如何利用Socket進行網路編程
Socket介面是TCP/IP網路的API,介面定義了許多函數或常式,程序員可以用它們來開發TCP/IP網路上的應用程序。請參閱以下資料:socket非常類似於電話插座。以一個國家級電話網為例。電話的通話雙方相當於相互通信的 個進程,區號是它的網路地址;區內一個單位的交換機相當於一台主機,主機分配給每個用戶的局內號碼相當於socket號。任何用戶在通話之前,首先要佔有一部電話機,相當於申請一個socket;同時要知道對方的號碼,相當於對方有一個固定的socket。然後向對方撥號呼叫,相當於發出連接請求(假如對方不在同一區內,還要撥對方區號,相當於給出網路地址)。對方假如在場並空閑(相當於通信的另一主機開機且可以接受連接請求),拿起電話話筒,雙方就可以正式通話,相當於連接成功。雙方通話的過程,是一方向電話機發出信號和對方從電話機接收信號的過程,相當於向socket發送數據和從socket接收數據。通話結束後,一方掛起電話機相當於關閉socket,撤消連接。在電話系統中,一般用戶只能感受到本地電話機和對方電話號碼的存在,建立通話的過程,話音傳輸的過程以及整個電話系統的技術細節對他都是透明的,這也與socket機制非常相似。socket利用網間網通信設施實現進程通信,但它對通信設施的細節毫不關心,只要通信設施能提供足夠的通信能力,它就滿足了。至此,我們對socket進行了直觀的描述。抽象出來,socket實質上提供了進程通信的端點。進程通信之前,雙方首先必須各自創建一個端點,否則是沒有法建立聯系並相互通信的。正如打電話之前,雙方必須各自擁有一台電話機一樣。在網間網內部,每一個socket用一個半相關描述:(協議,本地地址,本地埠)一個完整的socket有一個本地唯一的socket號,由操作系統分配。最重要的是,socket是面向客戶/伺服器模型而設計的,針對客戶和伺服器程序提供不同的socket系統調用。客戶隨機申請一個socket(相當於一個想打電話的人可以在任何一台入網電話上撥號呼叫),系統為之分配一個socket號;伺服器擁有全局公認的socket,任何客戶都可以向它發出連接請求和信息請求(相當於一個被呼叫的電話擁有一個呼叫方知道的電話號碼)。socket利用客戶/伺服器模式巧妙地解決了進程之間建立通信連接的問題。伺服器socket半相關為全局所公認非常重要。讀者不妨考慮一下,兩個完全隨機的用戶進程之間如何建立通信?假如通信雙方沒有任何一方的socket固定,就好比打電話的雙方彼此不知道對方的電話號碼,要通話是不可能的。實際應用中socket例子Socket介面是訪問Internet使用得最廣泛的方法。如果你有一台剛配好TCP/IP協議的主機,其IP地址是 . . . ,此時在另一台主機或同一台主機上執行ftp . . . ,顯然無法建立連接。因" . . . "這台主機沒有運行FTP服務軟體。同樣,在另一台或同一台主機上運行瀏覽軟體如Netscape,輸入"http:// . . . ",也無法建立連接。現在,如果在這台主機上運行一個FTP服務軟體(該軟體將打開一個Socket,並將其綁定到 埠),再在這台主機上運行一個Web服務軟體(該軟體將打開另一個Socket,並將其綁定到 埠)。這樣,在另一台主機或同一台主機上執行ftp . . . ,FTP客戶軟體將通過 埠來呼叫主機上由FTP服務軟體提供的Socket,與其建立連接並對話。而在netscape中輸入"http:// . . . "時,將通過 埠來呼叫主機上由Web服務軟體提供的Socket,與其建立連接並對話。在Internet上有很多這樣的主機,這些主機一般運行了多個服務軟體,同時提供幾種服務。每種服務都打開一個Socket,並綁定到一個埠上,不同的埠對應於不同的服務。Socket正如其英文原意那樣,象一個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供 伏交流電,有的提供 伏交流電,有的則提供有線電視節目。客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務。一個Server-Client模型程序的開發原理:伺服器,使用ServerSocket監聽指定的埠,埠可以隨意指定(由於 以下的埠通常屬於保留埠,在一些操作系統中不可以隨意使用,所以建議使用大於 的埠),等待客戶連接請求,客戶連接後,會話產生;在完成會話後,關閉連接。客戶端,使用Socket對網路上某一個伺服器的某一個埠發出連接請求,一旦連接成功,打開會話;會話完成後,關閉Socket。客戶端不需要指定打開的埠,通常臨時的、動態的分配一個 以上的埠。Socket介面是TCP/IP網路的API,Socket介面定義了許多函數或常式,程序員可以用它們來開發TCP/IP網路上的應用程序。要學Internet上的TCP/IP網路編程,必須理解Socket介面。Socket介面設計者最先是將介面放在Unix操作系統裡面的。如果了解Unix系統的輸入和輸出的話,就很容易了解Socket了。網路的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似於打開文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨後的連接建立、數據傳輸等操作都是通過該Socket實現的。常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對於面向連接的TCP服務應用;數據報式Socket是一種無連接的Socket,對應於無連接的UDP服務應用。Socket建立為了建立Socket,程序可以調用Socket函數,該函數返回一個類似於文件描述符的句柄。socket函數原型為:intsocket(intdomain,inttype,intprotocol);domain指明所使用的協議族,通常為PF_INET,表示互聯網協議族(TCP/IP協議族);type參數指定socket的類型:SOCK_STREAM或SOCK_DGRAM,Socket介面還定義了原始Socket(SOCK_RAW),允許程序使用低層協議;protocol通常賦值" "。Socket()調用返回一個整型socket描述符,你可以在後面的調用使用它。Socket描述符是一個指向內部數據結構的指針,它指向描述符表入口。調用Socket函數時,socket執行體將建立一個Socket,實際上"建立一個Socket"意味著為一個Socket數據結構分配存儲空間。Socket執行體為你管理描述符表。兩個網路程序之間的一個網路連接包括五種信息:通信協議、本地協議地址、本地主機埠、遠端主機地址和遠端協議埠。Socket數據結構中包含這五種信息。socket在測量軟體中的使用也很廣泛socket深層次理解Socket編程基本就是listen,accept以及send,write等幾個基本的操作。對於網路編程,我們也言必稱TCP/IP,似乎其它網路協議已經不存在了。對於TCP/IP,我們還知道TCP和UDP,前者可以保證數據的正確和可靠性,後者則允許數據丟失。最後,我們還知道,在建立連接前,必須知道對方的IP地址和埠號。除此,普通的程序員就不會知道太多了,很多時候這些知識已經夠用了。最多,寫服務程序的時候,會使用多線程來處理並發訪問。我們還知道如下幾個事實: 。一個指定的埠號不能被多個程序共用。比如,如果IIS佔用了 埠,那麼Apache就不能也用 埠了。 。很多防火牆只允許特定目標埠的數據包通過。 。服務程序在listen某個埠並accept某個連接請求後,會生成一個新的socket來對該請求進行處理。於是,一個困惑了我很久的問題就產生了。如果一個socket創建後並與 埠綁定後,是否就意味著該socket佔用了 埠呢?如果是這樣的,那麼當其accept一個請求後,生成的新的socket到底使用的是什麼埠呢(我一直以為系統會默認給其分配一個空閑的埠號)?如果是一個空閑的埠,那一定不是 埠了,於是以後的TCP數據包的目標埠就不是 了--防火牆一定會組織其通過的!實際上,我們可以看到,防火牆並沒有阻止這樣的連接,而且這是最常見的連接請求和處理方式。我的不解就是,為什麼防火牆沒有阻止這樣的連接?它是如何判定那條連接是因為connet 埠而生成的?是不是TCP數據包里有什麼特別的標志?或者防火牆記住了什麼東西?後來,我又仔細研讀了TCP/IP的協議棧的原理,對很多概念有了更深刻的認識。比如,在TCP和UDP同屬於傳輸層,共同架設在IP層(網路層)之上。而IP層主要負責的是在節點之間(EndtoEnd)的數據包傳送,這里的節點是一台網路設備,比如計算機。因為IP層只負責把數據送到節點,而不能區分上面的不同應用,所以TCP和UDP協議在其基礎上加入了埠的信息,埠於是標識的是一個節點上的一個應用。除了增加埠信息,UPD協議基本就沒有對IP層的數據進行任何的處理了。而TCP協議還加入了更加復雜的傳輸控制,比如滑動的數據發送窗口(SliceWindow),以及接收確認和重發機制,以達到數據的可靠傳送。不管應用層看到的是怎樣一個穩定的TCP數據流,下面傳送的都是一個個的IP數據包,需要由TCP協議來進行數據重組。所以,我有理由懷疑,防火牆並沒有足夠的信息判斷TCP數據包的信息,除了IP地址和埠號。而且,我們也看到,所謂的埠,是為了區分不同的應用的,以在不同的IP包來到的時候能夠正確轉發。TCP/IP只是一個協議棧,就像操作系統的運行機制一樣,必須要具體實現,同時還要提供對外的操作介面。就像操作系統會提供標準的編程介面,比如Win 編程介面一樣,TCP/IP也必須對外提供編程介面,這就是Socket編程介面--原來是這么回事啊!在Socket編程介面里,設計者提出了一個很重要的概念,那就是socket。這個socket跟文件句柄很相似,實際上在BSD系統里就是跟文件句柄一樣存放在一樣的進程句柄表裡。這個socket其實是一個序號,表示其在句柄表中的位置。這一點,我們已經見過很多了,比如文件句柄,窗口句柄等等。這些句柄,其實是代表了系統中的某些特定的對象,用於在各種函數中作為參數傳入,以對特定的對象進行操作--這其實是C語言的問題,在C++語言里,這個句柄其實就是this指針,實際就是對象指針啦。現在我們知道,socket跟TCP/IP並沒有必然的聯系。Socket編程介面在設計的時候,就希望也能適應其他的網路協議。所以,socket的出現只是可以更方便的使用TCP/IP協議棧而已,其對TCP/IP進行了抽象,形成了幾個最基本的函數介面。比如create,listen,accept,connect,read和write等等。現在我們明白,如果一個程序創建了一個socket,並讓其監聽 埠,其實是向TCP/IP協議棧聲明了其對 埠的佔有。以後,所有目標是 埠的TCP數據包都會轉發給該程序(這里的程序,因為使用的是Socket編程介面,所以首先由Socket層來處理)。所謂accept函數,其實抽象的是TCP的連接建立過程。accept函數返回的新socket其實指代的是本次創建的連接,而一個連接是包括兩部分信息的,一個是源IP和源埠,另一個是宿IP和宿埠。所以,accept可以產生多個不同的socket,而這些socket里包含的宿IP和宿埠是不變的,變化的只是源IP和源埠。這樣的話,這些socket宿埠就可以都是 ,而Socket層還是能根據源/宿對來准確地分辨出IP包和socket的歸屬關系,從而完成對TCP/IP協議的操作封裝!而同時,放火牆的對IP包的處理規則也是清晰明了,不存在前面設想的種種復雜的情形。
⑨ 在windows下用C語言如何實現socket網路編程,需要用到哪些頭文件或者庫
需要用到的頭文件包含:
#include <winsock2.h>
#include <windows.h>
與Linux環境下socket編程相比,windows環境多了一個步驟:啟動或者初始化winsock庫
Winsock,一種標准API,一種網路編程介面,用於兩個或多個應用程序(或進程)之間通過網路進行數據通信。具有兩個版本:
Winsock 1:
Windows CE平台支持。
頭文件:WinSock.h
庫:wsock32.lib
Winsock 2:
部分平台如Windows CE貌似不支持。通過前綴WSA可以區別於Winsock 1版本。個別函數如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都屬於Winsock 1.1規范的函數;
頭文件:WinSock2.h
庫:ws2_32.lib
mswsock.h用於編程擴展,使用時必須鏈接mswsock.dll
(9)精通windowssocket網路開發擴展閱讀
winsock庫的載入與卸載:
載入:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
載入成功,返回值為0。
WORD wVersionRequested:載入的winsock版本,使用宏MAKEWORD(x, y),x表示高位元組,y表示低位元組。然而使用時MAKEWORD(2, 2)。高位元組與低位元組相同~~
LPWSADATA lpWSAData:WSADATA結構的指針,傳入參數後,系統幫助我們填充版本信息。有興趣的可以看看結構體內容,不過基本用不著。
卸載:int WSACleanup(void);比起載入,卸載的函數真是輕松愉快。