![ישן](https://static.fresh.co.il/images/vBulletin/statusicon/post_old.gif)
08-11-2009, 18:12
|
|
|
חבר מתאריך: 22.08.08
הודעות: 310
|
|
Python: בעיה עם sockets וHTTP
אז ככה, הייתי באמצע להכין סרבר בסיסי בC++ - כזה שמראה למשתמש (דרך הדפדפן כמובן) עץ של כל הקבצים והתיקיות בסרבר ומשם אפשר לפתוח \ להוריד אותם.
התעצבנתי על C++ ולכן עברתי לPython ואני מנסה לעשות אותו דבר.
הבעיה היא שמאיזו שהיא סיבה, אפילו עם Python טוען שהוא שולח כל מה שאני אומר לו, הצד המקבל (כליינט בFireFox עם זה משנה) או רק מקבל חלק, או שFireFox אומר לו שהחיבור אותחל באמצע טעינת הדף.
אין לי מושג למה זה קורה, ואני גם לא ממש יכול לבדוק מכיוון שלי זה פותח הכל מצוין (אבל נו, תמיד עם ping 0 הכל פועל מצוין), אבל יש למישהו אולי מושג?
את המימוש אני עושה בעזרת socket פשוטה ששולחת הודעות HTTP.
הנה הבסיס:
קוד PHP:
#!/usr/bin/python import sys import socket import thread
##-------------------------------------------------------------- def handle(sock, addr): sent = sock.sendall(string) # forget how I get string for now
sock.shutdown(socket.SHUT_RDWR) sock.close() ##--------------------------------------------------------------
##-------------------------------------------------------------- def main(): server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(("", 80)) server.listen(20)
while True: sock, addr = server.accept() thread.start_new_thread(handle, (sock, addr)) ##--------------------------------------------------------------
thread.start_new_thread(main, ()) print "press ENTER to quit the server\n" raw_input() print "server> quitting"
כאשר string הוא משהו בסגנון הזה:
קוד:
HTTP/1.x 200 OK
Content-Type: whatever_is_sent
Content-Length: the_length
content
נערך לאחרונה ע"י Dragonion בתאריך 08-11-2009 בשעה 18:23.
|